類(Class)
阿新 • • 發佈:2018-12-07
-
類的實質是一種資料型別,類似於int、char等基本型別,不同的是它是一種複雜的資料型別。因為它的本質是型別,而不是資料,所以不存在於記憶體中,不能被直接操作,只有被例項化為物件時,才會變得可操作。
- 類定義
class 類名{
public:
//公有成員。
private:
//私有成員
protected:
//保護成員
};
-
公有成員、私有成員、保護成員均包含資料成員和成員函式兩部分,彼此沒有順序之分。一個public/private/protected關鍵字下可以跟多個成員,直到下一個public/private/protected關鍵字。如果成員前面沒有public/private/protected關鍵字,預設為私有成員。
-
private 表示該部分內容是私密的, 不能被外部所訪問或呼叫, 只能被本類內部訪問; 而 public 表示公開的屬性和方法, 外界可以直接訪問或者呼叫。
-
一般來說類的屬性成員都應設定為private, public只留給那些被外界用來呼叫的函式介面, 但這並非是強制規定, 可以根據需要進行調整。
-
類的資料成員是型別,所以不能被賦值,宣告資料成員和宣告普通變數的格式相同,比如“int n;”。
-
舉例
在類定義時定義成員函式。
#include <iostream> using namespace std; class Point{ public: void setPoint(int x, int y){ //實現setPoint函式 xPos = x; yPos = y; } void printPoint(){ //實現printPoint函式 cout<< "x = " << xPos << endl; cout<< "y = " << yPos << endl; } private: int xPos; int yPos; }; int main(){ Point M; //用定義好的類建立一個物件 點M M.setPoint(10, 20); //設定 M點 的x,y值 M.printPoint(); //輸出 M點 的資訊 return 0; }
在類外定義成員函式。
返回型別 類名::成員函式名(引數列表)
#include <iostream> using namespace std; class Point{ public: void setPoint(int x, int y); //在類內對成員函式進行宣告 void printPoint(); private: int xPos; int yPos; }; void Point::setPoint(int x, int y) {//通過作用域操作符 '::' 實現setPoint函式 xPos = x; yPos = y; } void Point::printPoint() { //實現printPoint函式 cout<< "x = " << xPos << endl; cout<< "y = " << yPos << endl; } int main(){ Point M; //用定義好的類建立一個物件 點M M.setPoint(10, 20); //設定 M點 的x,y值 M.printPoint(); //輸出 M點 的資訊 return 0; }