已采纳回答 / DoDream
是的,只有静态常量整型数据成员才可以在类中初始化。静态数据成员要在类外初始化常量数据成员和引用数据成员要在构造函数基/成员初始值设定项列表中初始化
2015-10-27
已采纳回答 / onemoo
直接在你的评论下回复有字数限制,我再发一条回答好了。你前一次的错误是缺少函数定义,根本不能编译。这次加上base的默认构造函数后,可以编译并运行了。但如果你只是加上base的默认构造函数,没有改别处的话,那这次的错误就在于:Big的拷贝构造函数还是没有做任何事! 且不说它并没有拷贝a1的内容,甚至也没有初始化自己的成员变量。 这种情况下,Big的成员变量会被默认初始化:也即是int v被默认初始化为随机值;base b就调用了自己的默认构造函数,这样b.k就是0(前一次就因为没有base的默认构造函数,所...
2015-10-24
最赞回答 / onemoo
在使用一个类时,只需要提供类定义即可,无需知道类实现,就可以进行编译。 一般类定义都是写在 .h 文件中的,所以include .h文件即可。类定义相当于定义了类可以进行的操作,代码只要知道了类定义就可以操作其成员。至于这些成员函数是怎么实现的,编译器在编译这个源文件时并不关心,所以无需知道类实现就可编译。当然要使整个程序能执行,还是得实现相应的成员函数,只不过那也许是写在其他cpp文件中的。这些写在其他cpp文件中类的实现会被链接机制找到,最终链接成可执行文件。为什么不能include .cpp: 在C...
2015-10-20