我希望有人可以帮我解决一些我在c ++中难以理解的问题。
如果我在头文件(Example.h)中的类中创建一个私有枚举,如下所示:
class Example
{
private:
enum ValueType
{
INTEGER,
BOOLEAN,
BLOB,
UNKNOWN
};
}
那么如何从源文件(私有方法)中访问这些值以用作返回类型(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;
...
...
}
我只是不确定如何将其声明为返回类型。
我也知道这个功能毫无意义,但它只是用于理解我想要理解的概念。
我也想知道如何从交换机规范中访问这些值?
#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;
...
...
}
答案 0 :(得分:5)
你应该把它写成:
Example::ValueType Example::returnMyType(const ValueType p_valueType)
{
//...
}
也就是说,在定义成员函数和成员函数时,你必须从类外部使用Example::ValueType
。
-
来自你的评论:
我知道,枚举是公开的,这也是如此吗?
是。如果是public
或private
则无关紧要。
辅助功能(公共,受保护和私人)仅确定允许访问的人,它不会确定如何访问。