定義:乙個類內嵌其他類的物件作為成員的情況,他們之間的關係是一種包含與被包含的關係。
組合類的建構函式設計
當建立類的物件時,如果這個類具有內嵌物件成員,那麼各個內嵌函式物件將首先被自動建立。
在建立物件時既要對本類的基本型別資料成員進行初始化,又要對內嵌物件進行初始化。
類名::類名(形參表):內嵌物件1(形參表),內嵌物件2(形參表),...
構造組合類物件時的初始化次序
首先對建構函式初始化列表中列出的成員(包括基礎型別成員和物件成員),次序為成員在類體中定義的次序。
處理完初始化列表後,再執行建構函式的函式體。
//4_4.cpp
#include #include using namespace std;
class point
point(point &p);
int getx()
int gety()
private:
int x, y;
};point::point(point &p)
//類的組合
class line
private: //私有資料成員
point p1, p2; //point類的物件p1,p2
double len;
};//組合類的建構函式
line::line(point xp1, point xp2) : p1(xp1), p2(xp2)
//組合類的複製建構函式,帶有初始化列表將l.p1賦值給p1
line::line (line &l): p1(l.p1), p2(l.p2)
//主函式
int main()
前向引用宣告
類應該先宣告,後使用。如果需要在某個類的定義之前引用該類,則應進行前向引用宣告。前向引用宣告只為程式引入乙個識別符號,但具體說明在其他地方。
class 類名;//類名處為需要前向宣告的類名
注: c 學習筆記(20)
string字串比較 比較方式 字串比較是按字元的ascii碼進行對比 返回0 返回1 返回 1 函式原型 int compare const string s const int compare const char s const void test1 elseif str1.compare s...
C 類的組合
c 中類的組合 c 中,乙個類包含另乙個類,它的建構函式的執行順序可以說是難點也是重點,最近抽空學習了下,總結如下 先拿何潔月教授上課的例子說明 class point 函式的實現 class distance 類宣告 函式的實現 類組合的建構函式設計 原則 不僅要對本類中的基本型別成員資料賦初值,...
C 類的組合
1 組合 乙個大類中包含很多子類 class funa class funb class fun 2 組合類的建構函式 當給乙個組合類傳引數時,同時要給子類傳參。關鍵要理解為什麼這麼做?一般情況下,資料成員會定義為類的私有成員,那麼函式成員需要用到本類的私有成員,實現某些功能,外部無法改變,那麼就需...