【简单易懂】c++中组合与聚合
生活随笔
收集整理的這篇文章主要介紹了
【简单易懂】c++中组合与聚合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
組合:即不十分相關的東西,集成在一起。譬如:電腦是一個類,由鼠標、鍵盤、顯示器、主機這4個類組合而成,可插拔。實現中:一般為傳參數。
聚合:即類的本身屬性,密不可分割。譬如:人是一個類,由手臂、大腿、軀干三個類組成,不可分割,生命周期相同。實現中:一般為成員屬性。
c++舉例來看:
//組合(傳參數)
#include <iostream> using namespace std; class Frind{friend void add(Frind* pFrind); //友元函數friend class Add; //友元類 public:int get(){return money;}; protected:int money=10; };class Add{public:/*Add(Frind* pFrind){mpFrind = pFrind;}*/ //protected:void func(Frind* mpFrind){ //<strong>傳入參數</strong>//mpFrind = pFrind;mpFrind->money +=10;cout <<"內部:"<< mpFrind->money << endl;}; };void add(Frind* pFrind){pFrind->money += 100; }int main(){Frind* pFrind = new Frind();//add(pFrind);Add* pAdd = new Add();pAdd->func(pFrind);cout << pFrind->get() << endl;system("PAUSE"); }運行結果如圖:
兩種方式運行結果一樣,具體用哪種方式更優,視情況而定(不在本文討論范圍)。
多補充一個知識點,多態的作用(仔細分析哦,很經典的):
1、統一接口,高度復用
2、向后兼容,靈活擴展
總結
以上是生活随笔為你收集整理的【简单易懂】c++中组合与聚合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: main()与_tmain()区别
- 下一篇: 【c++面向对象编程】工资管理系统