自定义返回类型声明

Custom return type declarations

本文关键字:声明 返回类型 自定义      更新时间:2023-10-16

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

您应该将其写成:

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

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

--

根据您的评论:

我明白了,如果枚举是公开的,情况也会是这样吗?

是的。不管是public还是private

可访问性(publicprotectedprivate)仅决定允许访问谁,而不决定如何访问。