组合与继承
来源:互联网 发布:阿里云新注册 编辑:程序博客网 时间:2024/05/22 08:54
1.当父类没有默认构造函数时,子类必须在初始化成员列表里面显示调用构造函数
class Vehicle { int xx; public: Vehicle(int x) :xx(x){} int getValue() { return xx; } }; class Car :public Vehicle { public: Car(int x) :Vehicle(x) {}; };
2.子类里面构造函数、拷贝构造函数、赋值号。
关于父类的赋值。
class Traveler { string trv; public: explicit Traveler(string st) :trv(st) { cout << "constructor Traveler" << endl; }; Traveler(Traveler &tr) { trv = tr.trv; } Traveler& operator=(const Traveler& tr) { if (this != &tr) { this->trv = tr.trv; } cout << "Traveler =" << endl; return *this; } }; class Pager { string pag; public: explicit Pager(string pa) :pag(pa) { cout << "constructor Pager" << endl; }; Pager(Pager& p) { pag = p.pag; } Pager& operator=(const Pager& pa) { if (this != &pa) { this->pag = pa.pag; } cout << "Pager =" << endl; return *this; } }; class BussinessTraveler :public Traveler { Pager pager; public: BussinessTraveler():Traveler("default"),pager("default"){ } BussinessTraveler(string tr,string pa):Traveler(tr),pager(pa){} BussinessTraveler(BussinessTraveler& buTr):Traveler(buTr),pager(buTr.pager){ } BussinessTraveler& operator=(BussinessTraveler& bs) { if(this!=&bs){ Traveler::operator=(bs); this->pager = bs.pager; } return *this; } };
拷贝构造函数在初始化列表里面,显示的调用父类的拷贝构造函数
赋值号,用Base::operator=(bs) 显示调用
3.名字隐藏对静态成员函数来说也是成立的。
另外在类里也不能仅用返回值来重载函数
4.private protect形式的派生类 像基类转换,编译器报错:
提示转换方式存在但无法访问!
protect派生类也不能访问基类的public的函数
阅读全文
0 0
- 论组合与继承
- 组合与继承
- 继承与组合
- 组合与继承
- 组合与继承
- 继承与组合
- 组合 继承 与 代理
- 组合与继承
- 组合与继承
- 继承与组合
- 继承(Virtual)与组合
- 继承与组合
- acm-继承与组合
- oj继承与组合
- ACM--继承与组合
- 14.5继承与组合
- oj继承与组合
- 继承与组合
- asp.net页面传值方法汇总
- 编码
- NEUQ网络赛补题
- Selenium(3): 浏览器操作
- QT关于网络TCP通讯的记录
- 组合与继承
- android activity跳转生命周期执行顺序 原理
- Java获取工程jar包war包中的文件
- javascript to change an element's class
- oVirt+SSAN超融合架构
- 不使用任何额外变量判断回文数字(6行代码)
- 面向对象
- 提高iOS App性能的建议和技巧
- NAT技术与代理服务器