深度懂得c++中的this指針。本站提示廣大學習愛好者:(深度懂得c++中的this指針)文章只能為提供參考,不一定能成為您想要的結果。以下是深度懂得c++中的this指針正文
1.this指針,就是一個指向以後對象的指針。我們曉得,界說出一個類,它在內存中是不占空間的,只要界說了該類類型的對象時,體系就會為該對象分派一段存儲空間,這段空間裡只存儲成員變量,關於成員函數,是寄存在代碼區的。(溫習:內存分為5年夜區:靜態區、常量區、棧、堆、代碼區)。下邊給出一個日期類,經由過程這個實例,深度懂得this指針。
#define _CRT_SECURE_NO_WARNINGS 1 #include using namespace std; class Date { public: void setYear(int year) { m_year = year; } void setMonth(int month) { m_month = month; } void setDay(int day) { m_day = day; } void print() { cout << m_year << "-" << m_month << "-" << m_day << endl; } private: int m_year; int m_month; int m_day; }; int main() { Date date; date.setYear(2016); date.setMonth(7); date.setDay(4); date.print(); system("pause"); return 0; }
2.參數裡的this指針普通不須要寫,體系會隱式將對象的首地址傳給函數,然則假如要寫,函數挪用的時刻也須要寫上對象的地址,函數體中的this其實不是在一切情形都可以省略,好比:(依然應用上邊的日期類)
void setYear(int m_year)
{
this->m_year = m_year;
}
在這類情形下湧現了重名,函數體的this必需寫,固然有必定基本的法式員才不會這麼寫呢。