struct Test
{
Test( int ) {}
Test() {}
void fun() {}
};
void main( void )
{
Test a(1);
a.fun();
Test b();
b.fun();
}
解答:
b.fun(); //b不是Test的实例对象
类是结构体的扩展,在类中封装了对数据成员的操作,缺省的成员为私有的,而结构体为公有的,这就是它们的区别,对构造函数的调用,如果没有参数,是不需要加上括号的,如果加了括号,就不是定义一个对象了,而是声明了一个函数,返回该类型,所以上面的Test b(),实际上是调用一个函数名为b,返回类型为Test的函数,而不是创建了一个对象b,去掉括号后,就是调用的没有形参的构造函数。
本文探讨了C++中如何正确使用构造函数来初始化对象,特别是针对带参数与无参数构造函数的不同调用方式。文章解释了在主函数中创建对象时常见的误区,并详细说明了如何避免将对象创建误写为函数声明。
4312

被折叠的 条评论
为什么被折叠?



