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

-

根据您的评论:



是。不管是public还是private都没有关系。

可访问性(公共(public), protected 和私有(private))仅确定允许谁访问的,而不能确定如何访问

关于c++ - 自定义返回类型声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9790200/

10-10 13:46