以前一直未注意 构造函数在构造默认对象时,如果无参数传递绝不应该加括号
如
class TEST
{
public:
TEST(int){}
TEST(){}
void fun(){}
};
int main()
{
TEST t(10); //正确,传进参数10
TEST t(); //原意是利用默认构造函数构造一个默认的对象,事实上相当于声明一个函数t(),返回值为TEST,编译自然通过
t.fun(); //编译出错,t不是一个类或结构体
return 0;
}
很小的问题 可是现在才发现.....汗