自定义返回类型声明

时间:2012-03-20 15:51:32

标签: c++

我希望有人可以帮我解决一些我在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;
   ...
   ...
}

1 个答案:

答案 0 :(得分:5)

你应该把它写成:

Example::ValueType Example::returnMyType(const ValueType p_valueType)
{
     //...
}

也就是说,在定义成员函数和成员函数时,你必须从类外部使用Example::ValueType

-

来自你的评论:

  

我知道,枚举是公开的,这也是如此吗?

是。如果是publicprivate则无关紧要。

辅助功能(公共受保护私人)仅确定允许访问的人,它不会确定如何访问。