C++ 類成員函數(shù)
c++ 類成員函數(shù)
類的成員函數(shù)是指那些把定義和原型寫在類定義內(nèi)部的函數(shù),就像類定義中的其他變量一樣。類成員函數(shù)是類的一個成員,它可以操作類的任意對象,可以訪問對象中的所有成員。
讓我們看看之前定義的類 box,現(xiàn)在我們要使用成員函數(shù)來訪問類的成員,而不是直接訪問這些類的成員:
class box { public: double length; // 長度 double breadth; // 寬度 double height; // 高度 double getvolume(void);// 返回體積 };
成員函數(shù)可以定義在類定義內(nèi)部,或者單獨使用范圍解析運算符 :: 來定義。在類定義中定義的成員函數(shù)把函數(shù)聲明為內(nèi)聯(lián)的,即便沒有使用 inline 標(biāo)識符。所以您可以按照如下方式定義 volume() 函數(shù):
class box { public: double length; // 長度 double breadth; // 寬度 double height; // 高度 double getvolume(void) { return length * breadth * height; } };
您也可以在類的外部使用范圍解析運算符 :: 定義該函數(shù),如下所示:
double box::getvolume(void) { return length * breadth * height; }
在這里,需要強調(diào)一點,在 :: 運算符之前必須使用類名。調(diào)用成員函數(shù)是在對象上使用點運算符(.),這樣它就能操作與該對象相關(guān)的數(shù)據(jù),如下所示:
box mybox; // 創(chuàng)建一個對象 mybox.getvolume(); // 調(diào)用該對象的成員函數(shù)
讓我們使用上面提到的概念來設(shè)置和獲取類中不同的成員的值:
#include <iostream> using namespace std; class box { public: double length; // 長度 double breadth; // 寬度 double height; // 高度 // 成員函數(shù)聲明 double getvolume(void); void setlength( double len ); void setbreadth( double bre ); void setheight( double hei ); }; // 成員函數(shù)定義 double box::getvolume(void) { return length * breadth * height; } void box::setlength( double len ) { length = len; } void box::setbreadth( double bre ) { breadth = bre; } void box::setheight( double hei ) { height = hei; } // 程序的主函數(shù) int main( ) { box box1; // 聲明 box1,類型為 box box box2; // 聲明 box2,類型為 box double volume = 0.0; // 用于存儲體積 // box 1 詳述 box1.setlength(6.0); box1.setbreadth(7.0); box1.setheight(5.0); // box 2 詳述 box2.setlength(12.0); box2.setbreadth(13.0); box2.setheight(10.0); // box 1 的體積 volume = box1.getvolume(); cout << "box1 的體積:" << volume <<endl; // box 2 的體積 volume = box2.getvolume(); cout << "box2 的體積:" << volume <<endl; return 0; }
當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
box1 的體積: 210 box2 的體積: 1560