欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年07月05日 15:27:18   投稿:lqh  
這篇文章主要介紹了C++編程指向成員的指針以及this指針的基本使用指南,與C語(yǔ)言一樣,存儲(chǔ)的數(shù)值被解釋成為內(nèi)存里的一個(gè)地址,需要的朋友可以參考下。

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

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

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

相關(guān)文章

  • C語(yǔ)言通過(guò)三步翻轉(zhuǎn)法實(shí)現(xiàn)單詞倒置詳解

    C語(yǔ)言通過(guò)三步翻轉(zhuǎn)法實(shí)現(xiàn)單詞倒置詳解

    這篇文章主要為大家分享了用三步翻轉(zhuǎn)法將一句話的單詞進(jìn)行倒置的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-05-05
  • c++ 盡量不要使用#define 而是用const、enum、inline替換。

    c++ 盡量不要使用#define 而是用const、enum、inline替換。

    為什么這么說(shuō)呢?或許很多程序員已經(jīng)習(xí)慣在文件開(kāi)始使用大量的#define語(yǔ)句
    2013-01-01
  • 基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷小游戲

    基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C語(yǔ)言結(jié)構(gòu)體指針引用詳解

    C語(yǔ)言結(jié)構(gòu)體指針引用詳解

    C語(yǔ)言中結(jié)構(gòu)體指針,可細(xì)分為指向結(jié)構(gòu)體變量的指針和指向結(jié)構(gòu)體數(shù)組的指針。本文將詳細(xì)為大家介紹一下這兩種結(jié)構(gòu)體指針如何引用,需要的小伙伴可以參考一下
    2021-12-12
  • C++圖論之Bellman-Ford算法和SPFA算法的實(shí)現(xiàn)

    C++圖論之Bellman-Ford算法和SPFA算法的實(shí)現(xiàn)

    貝爾曼-福特算法(Bellman-Ford)是由理查德·貝爾曼和萊斯特·福特創(chuàng)立的,求解單源最短路徑問(wèn)題的一種算法。SPFA 算法是 Bellman-Ford算法 的隊(duì)列優(yōu)化算法的別稱,通常用于求含負(fù)權(quán)邊的單源最短路徑。本文將詳解兩個(gè)算法的實(shí)現(xiàn),需要的可以參考一下
    2022-06-06
  • C++實(shí)現(xiàn)宿舍管理查詢系統(tǒng)

    C++實(shí)現(xiàn)宿舍管理查詢系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)宿舍管理查詢系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++中十種內(nèi)部排序算法的比較分析

    C++中十種內(nèi)部排序算法的比較分析

    本文給大家分享的是個(gè)人寫(xiě)的一段對(duì)C++中十種內(nèi)部排序算法的比較分析的代碼,主要在于測(cè)試10種排序方法的性能,給大家參考下吧。
    2015-03-03
  • C++中VTK9.3.0刻度標(biāo)簽重疊的問(wèn)題記錄

    C++中VTK9.3.0刻度標(biāo)簽重疊的問(wèn)題記錄

    這篇文章主要介紹了C++中VTK9.3.0刻度標(biāo)簽重疊的問(wèn)題,本文采用VTK9.3.0版本,其他版本如VKT8.0亦有同樣的問(wèn)題,需要的朋友可以參考下
    2024-06-06
  • C語(yǔ)言版三子棋小游戲

    C語(yǔ)言版三子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言版三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 詳解C++ STL模擬實(shí)現(xiàn)forward_list

    詳解C++ STL模擬實(shí)現(xiàn)forward_list

    forward_list是C++ 11新增的容器,它支持從容器中的任何位置快速插入和移除元素的容器,不支持快速隨機(jī)訪問(wèn)。本文將模擬實(shí)現(xiàn)forward_list,感興趣的可以了解一下
    2023-01-01

最新評(píng)論