已采纳回答 / onemoo
你的t1调用了默认构造函数。t2和t3都调用了copy constructor。从运行结果的前三句看并没有问题。可你定义的copy constructor并没有复制相应的成员变量啊,仅仅是输出了一句表明自己被调用的字符串。所以t2和t3成员变量的值都是默认值。string的默认值为空字符串,int这种内置类型的默认初值是未定的。输出的结果中打印t2和t3的位置上:在空格前其实就是空字符串,后面一个0和4237840就是随机的int。正确的copy constructor应该在构造初始化列表中给自己的成员变...
2015-07-15
已采纳回答 / onemoo
你的initScore函数声明有返回值,那在函数体中最后必须return一个相应的值。 只有main函数是个例外,main函数的最后不写返回语句的话,默认是return 0;如果你的函数不需要返回什么值,就应该将返回值声明为void,返回值为void的函数最后可以不写 return; 语句。还有,main函数的原型是返回int的,返回void是不规范的。最后,以上都是C++标准规定的,一些编译器可能并没有完全遵守规范(老版本的VS尤甚)
2015-07-14