14. 对象组合

来源:互联网 发布:android软件开发项目 编辑:程序博客网 时间:2024/06/08 02:05

OOP特性:封装、继承和多态性.

继承:代码的重用.

代码重用:继承/组合

组合:
用已有的对象组合出新的对象. eg: 有了engine对象,有了tyre对象,则可以组合成car对象. 用对象制造对象.

class Person {...};class Currency {...};class SavingsAccount{   public:     SavingsAccount(const char* name, const char* address, int cents);     ~SavingsAccount();     void print();   private:     Person m_saver; //对象, 对象组合     Currency m_balance; //对象,组向组合};//构造函数SavingsAccount::SavingsAccount(const char* name, const char* address, int cents):m_saver(name,address),m_balance(0,cents) //初始化列表,先初始化再构造函数. 1.初始化name address cents 2.调用有参数构造函数//如果不这么写,则会1.初始化 2. 调用无参数构造 3.赋值 4.调用有参数构造函数{}void SavingsAccount::print(){  m_saver.print();  m_balance.print();}

Public vs Private

class SavingsAccount{  public:    Person m_saver;    ....};如果Person类成员函数set_name,则可以使用SavingsAccount.m_saver.set_name();//但是不建议这样做,因为成员变量无法受到保护. 
原创粉丝点击