2007年8月10日星期五

关于自定义类型名与变量名

今天看linux的源代码,居然发现一个地方自定义的类型名与变量名重名!试了一下,果然如此:
#include <iostream.h>

struct S
{
int i;
};
typedef int I;
class C
{
int j;
};

void main()
{
S S;
S.i = 4;

I I;
I = 4;
cout << I << endl;

C C;
}

以上程序是正确的,能通过编译。
另注:
若如此使用了,接下来的程序若再次用,比如说,类C定义变量,则必须像这样用:
class C cx;
而用
C cx;
则会报错!
(如果此时是typedef,而不是class或是struct,该怎么使用呢?)

没有评论: