已采纳回答 / onemoo
Teacher.h中就包含了Teacher类的类定义,编译器知道类定义就可以编译当前代码,无需知道类是如何实现的(在teacher.cpp中)最终在编译后,由链接器负责找到类实现的代码(当然类实现也必须被编译过)并将其链接起来,最终形成可执行文件。
2015-11-27
已采纳回答 / Uestc_L
这些是成员变量,面向对象就是要通过自身的方法来操作成员变量,而不是直接对数据进行操作,这也是封装的存在意义,提高数据的安全性,也就是成员变量只需要隐藏起来,用private修饰,而方法要暴露出来在主调函数中使用,因此用public修饰方法。
2015-11-27
已采纳回答 / 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
已采纳回答 / onemoo
这个没错。p 是指向 TV类型 的指针,通过指针来访问所指变量的成员应该用 -> 运算符。 直接通过变量访问其元素才是用 .(点) 运算符。也就是 p->type 相当于 (*p).type
2015-10-15
已采纳回答 / onemoo
难得看到一个用codeblocks的。这个类定义没什么问题,报的这个错误不是代码中的。 看起来应该是链接时找不到链接库,这一般是因为建立工程不对。你建立工程时选的是console application(控制台应用程序)吗?
2015-10-14
已采纳回答 / onemoo
这是个函数,函数体后的尾大括号就标志着这个函数的结束,后面无需再加上分号。一般分号标志着语句的结束。所以你写上分号的话,等于是两个语句:一个完整的函数 + 一个只有一个分号的空语句
2015-10-08