已采纳回答 / onemoo
你的initScore函数声明有返回值,那在函数体中最后必须return一个相应的值。 只有main函数是个例外,main函数的最后不写返回语句的话,默认是return 0;如果你的函数不需要返回什么值,就应该将返回值声明为void,返回值为void的函数最后可以不写 return; 语句。还有,main函数的原型是返回int的,返回void是不规范的。最后,以上都是C++标准规定的,一些编译器可能并没有完全遵守规范(老版本的VS尤甚)
2015-07-14
最赞回答 / 慕斯卡1160282
如果你没有为你的类提供任何构造函数,那么编译器将自动为你生成一个默认的无参构造函数。一旦你为你的类定义了构造函数,哪怕只是一个,那么编译器将不再生成默认构造函数。应该说c++的类必须有构造函数。
2015-07-04
最赞回答 / onemoo
你是指:直接在类定义中给成员变量赋初值吗? 如:<...code...>这样写在C++11中是可以的。这个特性叫:in-class initializer在老标准中,只有当成员变量是整型static const时,才能在类内初始化。
2015-07-04
已采纳回答 / onemoo
不能在构造函数体中调用其他的构造函数,这等于是临时构造了一个Teacher后又丢弃了它。不过在新标准(C++11)中,可以在构造函数的构造初始化列表中调用本类的其他构造函数。如:<...code...>另外,对其普通的构造函数,最好也把成员变量的初始化值写在构造初始化列表中。
2015-07-04