c++ - 自定义返回类型声明

标签 c++

我希望有人能帮助我解决我在 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/

相关文章:

c++ - 如何在 C++ 中打印垂直直方图

c++ - 通过 const& 和通过 & 将对象传递给同一个函数

c++ - 从 C++ 中的位数组/位图中读取字段

c++ - 为什么这个 "reduction factor"算法在做 "+ div/2"

c++ - C++中两个字符串的比较

c++ - 不使用 "new"在 C++ 中创建对象

c++ - std::this_thread::get_id() 在 VS2013 中可靠吗?

有条件地返回不同类型的 C++ 函数

c++ - 在多线程环境中对代码进行排序

c++ - 在 multimap 中,如何获取与给定值关联的键?