自定义返回类型声明
Custom return type declarations
我希望有人能帮我解决我在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
。
可访问性(public、protected和private)仅决定允许访问谁,而不决定如何访问。
相关文章:
- 当返回类型声明为 ListNode 时,我们是否可以返回 false<T>*
- 使用typedef'ed返回类型声明友元函数时出现编译器错误
- 尽管显式声明了返回类型,但对lambda的调用是不明确的
- 如果使用返回引用的函数初始化"auto"var,为什么它不声明引用类型?
- 返回类型布尔函数中的声明语法错误
- const 在具有尾随返回类型的自动退货声明中是什么意思
- C++:在原型中声明"auto"函数返回类型仍然会导致在扣除错误之前使用"auto&quo
- 是否可以将“自动”关键字用作函数指针声明中使用初始化的返回类型
- C 返回类型指针声明
- 将结构指针声明为函数的返回类型
- 如何将函数指针声明指向模板函数,其返回类型取决于模板类
- 是否可以声明指向未知(编译时)返回类型的函数的指针
- Clang无法在模板类专业化中编译模板功能,该模板类专业化与模板声明具有 *不同的返回类型 *
- 返回类型的声明类型时,应用于三元(?:)表达式
- 为什么即使在声明中指定了返回类型,也必须在函数定义中包含返回类型?
- 函数声明和定义的返回类型不匹配,编译器可以吗?
- 声明/定义返回具有自动返回类型的 valarray 的函数时的隔离错误
- 使用decltype声明返回类型
- &in 函数声明返回类型
- 函数声明返回类型中的Const关键字