读书人

请问一个C++作用域的有关问题

发布时间: 2012-03-28 15:40:03 作者: rapoo

请教一个C++作用域的问题
代码如下:
typedef unsigned char DEC;

class TestClass {
public:
DEC a;
int DEC_T( void ){ return sizeof( DEC ); }
private:
typedef unsigned long DEC;

};

int main( int argc , char *argv[] )
{
TestClass tt;
cout << "DEC Size is " << tt.DEC_T() << endl;
while(1){}
return 0;
}
我想知道在类中的DEF使用哪个?
本程序的输出结果是4。说明用的是类中定义的。
但是如果去掉上面的那句typedef unsigned char DEC;会报错,如果去掉下面的typedef unsigned char DEC;不会报错,但是会输出结果会变为1.
这是怎么回事?

[解决办法]
定义类的时候,到DEC的时候就用了外面的那个进行定义了,因为这个时候自己的DEC还没有定义,但是运行的时候又被自己的DEC代替了,这个时候自己的DEC定义了?

读书人网 >C++

热点推荐