我希望有人能帮助我解决我在 C++ 中无法理解的一个小问题。
如果我在头文件 (Example.h) 的类中创建私有(private)枚举,如下所示:
class Example
{
private:
enum ValueType
{
INTEGER,
BOOLEAN,
BLOB,
UNKNOWN
};
}
那么如何从源文件(私有(private)方法)访问这些值以用作返回类型(Example.cpp)
#include "Example.h"
...
ValueType // <-- How can I declare this correctly? compiler complains
Example::returnMyType(const ValueType p_valueType)
{
switch(p_valueType)
{
case INTEGER;
return "INTEGER";
break;
...
...
}
我只是不确定如何将其声明为返回类型。
我也知道这个函数毫无意义,但它只是为了表达我想要理解的概念。
我还想知道如何从 switch 语句中访问这些值?
#include "Example.h"
...
ValueType // <-- How can I declare this correctly? compiler complains
Example::returnMyType(const ValueType p_valueType)
{
switch(p_valueType)
{
case Example::BLOB; // <-- Is this how to access
return "INTEGER";
break;
...
...
}
最佳答案
您应该将其写为:
Example::ValueType Example::returnMyType(const ValueType p_valueType)
{
//...
}
也就是说,在定义成员函数时以及从成员函数中,您必须使用类外部的 Example::ValueType
。
--
来自您的评论:
I see, it the enum were public would this also be the case?
是的。它是 public
还是 private
并不重要。
可访问性(公共(public)、 protected 和私有(private))仅确定谁可以访问,但它并不能确定确定如何访问。
关于c++ - 自定义返回类型声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9790200/