已采纳回答 / onemoo
Teacher.h中就包含了Teacher类的类定义,编译器知道类定义就可以编译当前代码,无需知道类是如何实现的(在teacher.cpp中)最终在编译后,由链接器负责找到类实现的代码(当然类实现也必须被编译过)并将其链接起来,最终形成可执行文件。
2015-11-27
已采纳回答 / Uestc_L
这些是成员变量,面向对象就是要通过自身的方法来操作成员变量,而不是直接对数据进行操作,这也是封装的存在意义,提高数据的安全性,也就是成员变量只需要隐藏起来,用private修饰,而方法要暴露出来在主调函数中使用,因此用public修饰方法。
2015-11-27
已采纳回答 / onemoo
语句后面要用分号表明语句结束。 类定义实际上是这个类型的声明,算是声明语句,所以结尾要加分号。函数定义就个那种格式:以大括号括起的函数体结尾即可。 函数定义不算是语句。
2015-10-29
已采纳回答 / DoDream
是的,只有静态常量整型数据成员才可以在类中初始化。静态数据成员要在类外初始化常量数据成员和引用数据成员要在构造函数基/成员初始值设定项列表中初始化
2015-10-27
已采纳回答 / onemoo
直接在你的评论下回复有字数限制,我再发一条回答好了。你前一次的错误是缺少函数定义,根本不能编译。这次加上base的默认构造函数后,可以编译并运行了。但如果你只是加上base的默认构造函数,没有改别处的话,那这次的错误就在于:Big的拷贝构造函数还是没有做任何事! 且不说它并没有拷贝a1的内容,甚至也没有初始化自己的成员变量。 这种情况下,Big的成员变量会被默认初始化:也即是int v被默认初始化为随机值;base b就调用了自己的默认构造函数,这样b.k就是0(前一次就因为没有base的默认构造函数,所...
2015-10-24
已采纳回答 / onemoo
系统没有帮你拷贝。拷贝构造函数原型就是“那样的函数名和形参”,这个函数才会被视为拷贝构造函数。 程序在需要进行拷贝构造的时候就会调用这个函数来构造类实例。大括号里就是这个函数的实现,写什么完全由你来决定,你打算怎样拷贝构造就怎样写好了。课程中只写了一句输出语句,是为了验证在哪些情况下调用拷贝构造函数。 例子中的这个函数确实没有拷贝任何成员变量。 用这个做示例似乎有点欠妥...
2015-10-16
已采纳回答 / AAnonymous
C++这里括号可以不写,因为调用的是无参构造函数,写不写都一样如果重载了构造函数,需要调用有参数的括号就是必须的了,需要传参数进去Java/C#等,即是是调用默认无参构造函数,括号也要写的
2015-10-16