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;