课程
/后端开发
/C++
/C++远征之多态篇
Animal(); 默认构造函数这样写是错的
Animal(){ } 这样就是对了 为什么 有差别吗?
2015-11-26
源自:C++远征之多态篇 3-4
正在回答
Animal ();仅仅是声明,类外要对其进行定义,Animal::Animal(){};
Animal(){};是在类内定义
此回答引用于Sky_Coder
被调用了,但是父类的构造函数里面没有任何动作,所以你看不到被调用了,如果你在父类构造函数里面写上
Animal(){cout<<"Animal()";} 你就会发现父类构造函数被调用的痕迹
有差别 的 函数是什么 不要大括号 能称为 函数吗 例如你c语言里面 main () 你不写 大括号试试
/tmp/ccNOYNZd.o: In function `Dog::Dog(std::string)':index.cpp:(.text._ZN3DogC2ESs[_ZN3DogC5ESs]+0x19): undefined reference to `Animal::Animal()'collect2: error: ld returned 1 exit status
这是报错信息
举报
本教程将带领大家体会面向对象三大特性中的多态特性
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号