a.将其它类的对象做为当前类的成员使用
b.当前类的对象与成员对象的生命周期相同
c.成员对象在用法上与普通对象彻底一致ios
eg:spa
#include <iostream> #include <string> using namespace std; class Memory { public: Memory() { cout << "Memory()" << endl; } ~Memory() { cout << "~Memory()" << endl; } }; class Disk { public: Disk() { cout << "Disk()" << endl; } ~Disk() { cout << "~Disk()" << endl; } }; class CPU { public: CPU() { cout << "CPU()" << endl; } ~CPU() { cout << "~CPU()" << endl; } }; class MainBoard { public: MainBoard() { cout << "MainBoard()" << endl; } ~MainBoard() { cout << "~MainBoard()" << endl; } }; class Computer { Memory mMem; Disk mDisk; CPU mCPU; MainBoard mMainBoard; public: Computer() { cout << "Computer()" << endl; } void power() { cout << "power()" << endl; } void reset() { cout << "reset()" << endl; } ~Computer() { cout << "~Computer()" << endl; } }; int main() { Computer c; return 0; }
面向对象中的继承关系指类之间的父子关系
a.子类拥有父类的全部属性和行为
b.子类是一种特殊的父类
c.子类对象能够当作父类对象使用
d.子类中能够添加父类没有的方法和属性code
语法:对象
class Parent { int mv; public: void method () { } } class Child : public Parent //描述继承关系 { };
eg:blog
#include <iostream> #include <string> using namespace std; class Parent { int mv; public: Parent () { cout << "Parent()" << endl; mv = 100; } void method () { cout << "mv = " << mv << endl; } }; class Child : public Parent { public: void hello() { cout << "I'm Child class" << endl; } }; int main() { Child c; c.hello(); c.method(); return 0; }
a.子类就是一个特殊的父类
b.子类对象能够直接初始化父类对象
c.子类对象能够直接赋值给父类继承
eg: 上诉例子中的类生命周期
Child c; Parent p1 = c; Parent p2; p2 = c;