转载请注明出处
由于阅历有限,篇幅不周之处还望指出,谢谢
如果方法确实奏效,请一定回复点赞哦,给后来人也是一种帮助,谢谢!
派生类在构造的时候,会先调用基类的构造函数。
如果,基类构造函数参数列表为空,那么不需要给该函数传参。
如:
[cpp] view plain copy print?
- CMe::CMe()
- {
- cout<<"CMe Be Called"<<endl;
- }
则CMySon的定义只需这样:
[cpp] view plain copy print?
- CMySon::CMySon(int times,char * son)
- {
- cout<<"CMySon Be Called"<<endl;
- }
那么,若有
[cpp] view plain copy print?
- class CMySon: public CMe
- {
-
- public:
- CMySon(int times,char * son);
-
-
};
如果基类构造函数带参,像这样:
[cpp] view plain copy print?
- CMe::CMe(char * son)
- {
- cout<<"CMe Be Called"<<endl;
- }
那么,派生类构造函数需要向基类构造函数传递参数:
[cpp] view plain copy print?
- CMySon::CMySon(int times,char * son):CMe(son)
- {
- cout<<"CMySon Be Called"<<endl;
-
}
如果不加:CMe(son)则会产生no appropriate default constructor available的编译错误
转载出处:http://blog.csdn.net/xiaoy_h/article/details/8588056