程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 深度懂得c++中的this指針

深度懂得c++中的this指針

編輯:關於C++

深度懂得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必需寫,固然有必定基本的法式員才不會這麼寫呢。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved