Kar*_*awi 2 c++ variables class operator-overloading operators
所以我有一个类似这个的类:
class CVal {
public:
void operator=(int n) {
d = n;
}
private:
int d;
};
Run Code Online (Sandbox Code Playgroud)
现在每当我做类似的事情
CVal c;
switch(c) {...}
Run Code Online (Sandbox Code Playgroud)
我想要访问CVal :: d,那我该怎么做呢?我想过重载一些操作员,但我找不到任何东西.
Vla*_*cow 12
您应该像这样定义转换运算符
class CVal {
public:
//...
operator int() const { return d; }
private:
int d;
};
Run Code Online (Sandbox Code Playgroud)
或者,如果您有一个支持C++ 2014的编译器,那么您可以通过以下方式定义它
class CVal {
public:
//...
operator auto() const { return d; }
private:
int d;
};
Run Code Online (Sandbox Code Playgroud)
根据C++标准(6.4.2开关语句)
2条件应为整数类型,枚举类型或类类型.如果是类类型,则将条件在上下文中隐式转换(第4节)为整数或枚举类型.整体促销活动......
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |