以下代码不会编译,而名称“aNumber”在使用前未声明。声明在使用C++之前?
class A
{
A()
:aNumber(100)
{
}
void foo()
{
aNumber = 0;
}
int aNumber;
};
如果上面的代码编译,那么为什么不以下: - 由成员变量
A.
class Dummy
{
void foo(INT);
typedef int INT;
};
B.Default初始化: -
class Dummy
{
void foo(int y = x);
int x;
};
class A {A():aNumber(aStaicMember){} int aNumber; void foo(int x = aStaicMember); // aStaicMember还没有被decalred静态int aStaicMember; //声明}; int A :: aStaicMember = 100; //定义当上面是真的那么为什么不是typedef,我仍然感到困惑 – 2010-08-31 10:10:46
我已经显示你的typedef也是可以的,重要的部分是_where_你使用的名字,而不是名称是typedef还是别的.chubsdad引用了相关的标准文本9.2/2。 – MSalters 2010-09-01 08:25:54