首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个简单的类构造有关问题

2012-03-08 
一个简单的类构造问题为什么b.fun()编译不过?structTest{Test(){}Test(int){}voidfun(){}}voidmain(void)

一个简单的类构造问题
为什么b.fun()编译不过?

struct   Test
{Test()   {}
Test(   int   )   {}

void   fun()   {}
};


void   main(   void   )
{
Test   a(1);
a.fun();
Test   b();
b.fun();
}


[解决办法]
struct Test
{Test() {}
Test( int ) {}

void fun() {}
};


void main( void )
{
Test a(1);
a.fun();
Test b;
b.fun();
}
[解决办法]
cout < < typeid(b).name()试试吧。
你会比较震惊的。
C++的一个著名陷阱了。
[解决办法]
Test b();这句没有正确的构造起b对象
[解决办法]
Test b; not Test b();
[解决办法]
Test b();
=========
定义一个函数,类型T,函数名b,其参数表空,Test b才是执行构造函数
[解决办法]
构造一个对象
[解决办法]
为保持与c的兼容性,Test b();会被解释城声明一个参数表为空的函数
正确的写法是Test b;

热点排行