雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

深度理解c++中的this指針

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊:

1.this指針,就是一個指向當前對象的指針。我們知道,定義出一個類,它在內存中是不占空間的,只有定義了該類類型的對象時,系統(tǒng)就會為該對象分配一段存儲空間,這段空間里只存儲成員變量,對于成員函數(shù),是存放在代碼區(qū)的。(復習:內存分為5大區(qū):靜態(tài)區(qū)、常量區(qū)、棧、堆、代碼區(qū))。下邊給出一個日期類,通過這個實例,深度理解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.參數(shù)里的this指針一般不需要寫,系統(tǒng)會隱式將對象的首地址傳給函數(shù),但是如果要寫,函數(shù)調用的時候也需要寫上對象的地址,函數(shù)體中的this并不是在所有情況都可以省略,比如:(仍然使用上邊的日期類)

void setYear(int m_year)
{
        this->m_year = m_year;
}

在這種情況下出現(xiàn)了重名,函數(shù)體的this必須寫,當然有一定基礎的程序員才不會這么寫呢。

上一篇:詳解計數(shù)排序算法及C語言程序中的實現(xiàn)

欄    目:C語言

下一篇:C++實現(xiàn)翻轉單詞順序

本文標題:深度理解c++中的this指針

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2189.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權所有