考虑以下类:
class Foo
{
public:
#ifdef CONDITION
int x = 0;
#endif
int y;
int foo() {
#ifdef CONDITION
return ++x;
#else
return 0;
#endif
}
}
int x仅在我定义时存在CONDITION- 通过 a#define CONDITION或作为预处理器定义 ( -D CONDITION)
这有一个很好的优势,即我无法编译我在未定义x的地方错误地使用它。CONDITION
例如:如果我不小心写了如下内容:
Foo f;
f.x = 10;
当我失踪时,这将不允许编译-D CONDITION
Foo但是,当在多个项目使用的头文件中声明类时,我们会遇到各种令人讨厌的问题,其中预处理器定义不同: within
的偏移量将不同,导致对对象外观的不同解释。yFooFoo
问题:
有什么方法可以让x任何人使用Foo.CONDITION