Pet*_*ter 4 c++ windows winapi initialization
我见过的一类,其中一个叫成员变量min和max
class A
{
public:
A();
~A();
bool min;
bool max;
...
};
Run Code Online (Sandbox Code Playgroud)
用构造函数
A::A()
{
min=false;
max=true;
...
}
Run Code Online (Sandbox Code Playgroud)
我试图用初始化列表重写它:
A::A():min(false), max(true){}
Run Code Online (Sandbox Code Playgroud)
但是我收到了警告+错误
warning C4003: not enough actual parameters for macro 'min'
error C2059: syntax error : ')'
Run Code Online (Sandbox Code Playgroud)
因为min宏是在中定义的WinDef.h
在没有重命名成员变量的情况下,是否可以在这种情况下使用初始化列表?
如果您有VS2013或其他现代编译器:
A():min {false}, max {true} { }
Run Code Online (Sandbox Code Playgroud)
避免这个问题,因为它min(a,b)是一个函数式宏,{ 无法启动它的参数列表.
这是初始化列表特有的,所以我重新打开了这个问题."复制"建议在表达式上下文中使用宏,这在根本上是不同的 - 你可以(min)在那里使用.
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |