#include<iostream> using namespace std; class test { public: test(); ~test(){}; private: int i; }; test::test() { i = 25; for(int ctr = 0; ctr < 10; ctr++) { cout<<"Counting at "<<ctr<<"\n"; } } test anObject; int main() { return 0; }
输出结果如下:
本人搞不懂那个 i = 25有什么作用?
还有 test anObject 能解释一下吗?
这些东西这样写跟输出的结果有什么关联呢?
解决方案
20
i并没有什么软用,就是一个成员变量
test anObject;声明了test类的一个全局变量anObject
跟输出有关系,原因是只有定义对象,才会调用构造函数,才会输出
test anObject;声明了test类的一个全局变量anObject
跟输出有关系,原因是只有定义对象,才会调用构造函数,才会输出
10
就声明了一个变量,然后赋值,至于 这个变量的具体作用,你代码并没有体现
5
C++ main 之外,可以原因是初始化变量调用函数
C没有这个功能。C用户程序,要么在从main(winmain)开始执行或(WInMain ,MS 专门为windows 定制的 main函数)
要么,编译链接的时候,设置其它函数作为程序入口点
这种初始化,而在main函数外部执行函数的功能,是C++才有的
test anObject; 定义了一个test类型的变量(对象),并调用缺省构造函数test();对它初始化。
构造函数,输出了数据。
然后执行 空的 main函数(什么也不做)
C没有这个功能。C用户程序,要么在从main(winmain)开始执行或(WInMain ,MS 专门为windows 定制的 main函数)
要么,编译链接的时候,设置其它函数作为程序入口点
这种初始化,而在main函数外部执行函数的功能,是C++才有的
test anObject; 定义了一个test类型的变量(对象),并调用缺省构造函数test();对它初始化。
构造函数,输出了数据。
然后执行 空的 main函数(什么也不做)