1.输出结果:0 2.以下是输出结果为0的原因: 代码中实际上是定义了两个自定义构造函数。至于哪一个构造函数被先调用取决于在下面的代码如何去声明类的对象。如果在声明类的对象的时候带参数,那么程序会自动调用上面带参数的构造函数,相应地,变量m_nID的值就是声明对象的时候传进来的参数值。如果在声明类的对象的时候不带参数,程序将会自动调用下面第二个自定义构造函数,但是,在第二个构造函数中,程序又再一次调用了上面的构造函数,同样将参数值传递给了第一个自定义函数,这时的m_nID的值就应该是在函数Cinfo()中调用的第一个构造函数中传递的值。 综上,至于输出什么具体值,主要取决于在声明类对象的时候是否带有参数,请 楼主仔细琢磨一下。理解什么是默认构造函数以及自定义构造函数。
CInfo() { CInfo(0); } 这个Cinfo(0)只是生成了一个临时对象,不是在Cinfo()构造函数里再去调用Cinfo(int i)构造函数。m_nID没被初始化
64,644
社区成员
250,475
社区内容
加载中
试试用AI创作助手写篇文章吧