C++類的定義,成員函數的定義,對象的創建與使用
阿新 • • 發佈:2019-01-24
color ostream err c++ div span bsp 但是 style
---恢復內容開始---
類是一個模板,可用類生成一系列可用的實例。例如 int B就是生成了一個符合int的數據B,類也是一樣,使用類名就可以直接生成一個實例,
該實例中包含類中所有的數據類型和對這些數據的操作方法。
首先,創建一個類
class OBJ { private: char Name[MAX]; int Num; float Price; float Total_price; protected: public: }
該類中包含三個部分,私有部分(private)、保護部分(protected)、公有部分(public)(當然也可以都沒有成為一個空類)
其中private和protected部分中的數據和內容不可以在類外通過實例直接使用
#include<iostream> using namespace std; #define MAX 10 class OBJ //創建類 { private: char Name[MAX]; int Num; float Price; float Total_price; protected: public: }; void main() { OBJ ob;//使用類實例化ob ob.Num = 10; }
如上使用ob的private成員編譯無法通過,報錯
test.cpp(17): error C2248: “OBJ::Num”: 無法訪問 private 成員(在“OBJ”類中聲明)
一般使用public方法來操作private數據,以保證數據的安全性,這同樣體現了C++的封裝性
#include<iostream> using namespace std; #define MAX 10 class OBJ { private: char Name[MAX]; int Num; float Price; float Total_price; protected: public: void Get_obj(char name[], int num, float price) { strcpy(Name, name); Num= num; Price = price; Total_price = Price*Num; } char *Get_name() { return Name; } int Get_num() { return Num; } float Get_price() { return Price; } float Get_total_price() { return Price * Num; } };
(一個類結束後記得加上分號)
成員函數可以在類內部實現(如上所示),也可以在類外部實現,若在外部實現
其內部只需將函數聲明後加上分號
其外部實現使用如下格式
返回值類型 類名 ::函數名(參數)
例如
class OBJ { private: char Name[MAX]; int Num; float Price; float Total_price; protected: public: void Get_obj(char name[], int num, float price); }; void OBJ::Get_obj(char name[], int num, float price) { strcpy(Name, name); Num = num; Price = price; Total_price = Price*Num; }
::叫做作用域解析符,當類的方法在類外部實現時,用來限定該方法是哪一個類的
當一個類中有數據和方法但是沒說明其屬於哪部分(protected、private、protected)
則默認其為私有部分
學習過程完整代碼如下
#include<iostream> using namespace std; #define MAX 10 class OBJ { private: char Name[MAX]; int Num; float Price; float Total_price; protected: public: void Get_obj(char name[], int num, float price) { strcpy(Name, name); Num = num; Price = price; Total_price = Price*Num; } char *Get_name() { return Name; } int Get_num() { return Num; } float Get_price() { return Price; } float Get_total_price() { return Price * Num; } }; void main() { OBJ ob; ob.Get_obj("LLL",10,10); cout<<ob.Get_name()<<endl; cout<<ob.Get_num()<<endl; cout<<ob.Get_price()<<endl; cout<<ob.Get_total_price()<<endl; }
C++類的定義,成員函數的定義,對象的創建與使用