class Test
{
public:
Test(int){}
Test(){}
void fun(){}
};
int main()
{
Test a();
a.fun();//错,a不是test的对象
Test b(1);
b.fun();
return 0;
}
类是结构体的扩展,在类中封装了对数据成员的操作,缺省的成员为私有的,而结构体为公有的,这就是它们的区别,对构造函数的调用,如果没有参数,是不需要加上括号的,如果加了括号,就不是定义一个对象了,而是声明了一个函数,返回该类型,所以上面的Test a(),实际上是调用一个函数名为a,返回类型为Test的函数,而不是创建了一个对象b,去掉括号后,就是调用的没有形参的构造函数。