nda*_*ess 3 c++ oop enums class function
我想知道如何或者如果我可以在以下类中enum payloadTypes使用我的私有方法访问我的公共threshold():
class A {
private:
unsigned int threshold(payloadTypes kindOfPayload,int x,int y);
public:
enum payloadTypes {
INVALID =-1,
TEST=0,
THRESHOLDS,
RX,
};
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我会收到此错误,并且我不想将我的枚举范围更改为 private
错误:'payloadTypes'尚未声明
unsigned int threshold(payloadTypes kindOfPayload,int x,int y);
既然thresholdsGetter不是类定义的一部分,那么你需要编写A::payloadTypes而不是payloadTypes因为Argument Dependent Lookup无法拯救.
或者,您的实施中是否有拼写错误threshold?thresholdsGetter根据编译错误,您已经编写过了.但是,尽管Stroustrup说1,你仍然需要在类定义中的函数enum 之前声明你的.如果你纠正了那么你的代码将按原样运行.
1请注意
struct foo
{
enum bar {};
void foobar(bar b){}
};
Run Code Online (Sandbox Code Playgroud)
会编译,但是
struct foo
{
void foobar(bar b){}
enum bar {};
};
Run Code Online (Sandbox Code Playgroud)
会不会.
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |