/*
該程式用到了建構函式、析構函式、物件陣列、物件指標、類內定義友元函式
*/#include
using namespace std;
class box
//既使用了預設引數的建構函式,
//有用函式初始化表對資料成員進行了初始化
float volume();
//求長方形體積
~box();
//析構函式
friend void display(box &);
//類內定義display函式為box類的友元函式
private:
float length;
float width;
float height;
};//注意在括號後面要引號
void display(box &t)
//形參t是對box類物件的引用
float box::volume()
box::~box()
;cout
cout
float(box::*p)()=&box::volume;
//定義了指向物件函式的指標,此時volume函式後面無括號
cout<
box *point=box;
cout
/*求大神幫忙,這一句跟前兩句是同樣的意思,不被注釋掉時顯示「error c2296: '->*' : illegal, left operand has type 'class box [2]' 」,為什麼呢?*/
display(box1);
//調用友元函式display,實參box是box類物件
return 0;
執行結果:
為什麼執行結果會有後面四條語句輸出呢?這時因為我用到了析構函式來輸出不同長方形的體積和「加油」兩字,通過結果可以看到,先構造的後析構,後構造的先析構。當物件建立的時候就執行建構函式,物件建立的先後順序分別是box[1],box[0],box2,box1,所以在主函式結束前系統就「反向」執行這些物件的析構函式。
C 類和物件 類和物件
c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...
C 物件和類
1,特殊的類 字串string include include using namespace std int main 類似於標準庫函式,我們不需要記住每種 類 的全部操作,只需要在使用過程中記住一些常用的操作就可以了。如果有需要的話,可以求助於相關書籍或網路 2,當我們對string進行種種操作...
C (類和物件)
類成員函式 類的成員函式指標那些把定義和原型寫在類定義內部的函式,就想類定義中的其他變數一樣。類訪問修飾符 類成員可以定義為public,private或protected。預設情況下是定義為private。建構函式 類的建構函式是一種特殊的函式,在建立乙個新物件是呼叫。析構函式 類的析構函式也是一...