C++中對類和對象基礎理解
C++不是純面向對象的編程語言,而是基于面向對象的語言,因為C++中包含C語言的部分,而C語言是面向過程的。
面向對象的三大特性:封裝、繼承、多態。
封裝:將方法和數據封裝在類里面,可以根據訪問限定符的使用保證數據的安全性,隱藏了方法的實現細節,也方便使用。
繼承:對已有類增加屬性和功能或進行部分修改來建立新的類,是實現代碼的復用的重要手段,繼承是類型之間的關系建模。
多態:在面向對象的程序里面,同一個消息被不同的對象接受后可以導致不同的行為,是接口的多種不同的實現方式。
這里先介紹類的重載性部分。
訪問限定符解釋
(1)public成員可以直接從類外部訪問,PRivate/protected成員不可以從類外部直接訪問。
(2)每個限定符在類中可以使用多次,一個限定符的作用域是下一個訪問限定符或類結束前。
(3)類里面如果沒有多成員指定訪問限定符,則默認為私有的。
下面我們引入一個簡單類的例子加深理解
其中成員函數也可以在類內部聲明,在類外部定義。
class Student{public: void Display();private: char* _name; char* _sex; int _num;};void Student::Display(){ cout << "姓名:" << _name << endl; cout << "性別:" << _sex << endl; cout << "學號:" << _num << endl;}類的實例化對象(為了方便舉例,這里將成員變量定義為公有的)
void Test(){ Student s; s._name = "小紅"; s._sex = "女"; s._num = 01; s.Display();}類只是一個模型一樣的東西,只想定了該類中有哪些成員,定義出一個類并沒有分配實際的內存空間,類就像現實生活中建筑設計中的圖紙,只需要設計出需要些什么東西,真正占用空間,能實際存儲數據的是實例化出的對象。類的存儲對象模型
一個對象的大小等于類中所有成員變量的大小之和(遵循內存對其規則),空類的大小為1。
類的六個默認成員函數
下面直接用日期類的例子解釋這前四個常用的默認成員函數
class Date{public: Date(int year, int month, int day)//構造函數 { _year = year; _month = month; _day = day; } Date(const Date& d)//拷貝構造函數 { _year = d._year; _month = d._month; _day = d._day; } Date& Operator = (const Date& d)//賦值運算符重載 { if (this != &d) { this->_year = d._year; this->_month = d._month; this->_day = d._day; } return *this; } ~Date()//析構函數 { cout << " ~Date() " << endl; }private: int _year; int _month; int _day;};
新聞熱點
疑難解答
圖片精選