假设我有这些文件,如下:
A.H
namespace cool
{
class A
{
public:
enum Status {OK, NotOK, NotOK2};
};
}
B.h
#include "A.h"
namespace cool
{
class B
{
public:
A::Status doSth(int param1);
};
}
B.cpp
using cool::A;
using cool::B;
A::Status B::doSth(int param1)
{
return A::Status::OK;
}
所以我的问题是,每当我想要返回状态类型时,我都不想写A::Status::OK
。有没有办法只返回OK
?或者Status::OK
,这样我每次至少可以节省一些不写类名的时间。
到目前为止,我已经尝试添加using cool::A::Status;
,using A::Status;
和using cool::A::Status::OK;
。但后来我得到了编译错误:
'凉爽::甲'不是命名空间或无范围的枚举
关于如何只需要返回OK的任何想法?
答案 0 :(得分:1)
解决方案1:
您已经可以删除Status::
return A::/*Status::*/OK;
解决方案2:
您可以将enum Status {OK, NAK, MAK};
移到A类之外
解决方案3:制作名为#define
OK
#define OK A::Status::OK