激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - 帶你了解C++this指針的用法及其深究

帶你了解C++this指針的用法及其深究

2021-12-20 15:06秋名山碼神 C/C++

這篇文章主要介紹了C++中this指針的用法,對初學者而言是非常重要的概念,必須加以熟練掌握,需要的朋友可以參考下,希望能給你帶來幫助

前言

今天,碼神像一個新車手一樣,嘗試著用模板來更新一下,不要建議哦,畢竟沒有放棄愛情的拓海也不是真正的車神,哈哈,發車了

一、this指針是個什么東東,重要嗎?

首先,我以碼神的名義起誓,this指針絕對重要,尤其是對于c++這個面向對象編程的語言來說!

有的碼手可能要說了:你說重要就重要?那我還說不重要呢?

這個么,空口無憑,我現在來舉一個例子:

我們知道對于一個類來說,要有很多工作要做,其中類的成員函數可以訪問類的數據(限定符只是限定于類外的一些操作,類內的一切對于成員函數來說都是透明的),那么成員函數如何知道哪個對象的數據成員要被操作呢,這時c++中的this指針就應用而生了

注:

每個對象都擁有一個指針:this指針,通過this指針來訪問自己的地址。this指針不是對象的一部分,故sizeof不會體現出this指針的大小,this指針的類型取決于使用this指針的成員函數類型以及對象類型。

帶你了解C++this指針的用法及其深究

二、案例理解

代碼如下(示例):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include<iostream>
using namespace std;
class Person
{
public:
    Person(int age)
    {
        this->age=age;
        //this指針指向被調用的成員函數所屬的對象
    }
    int age;
    //int m_Age;
    void PersonAddAge(Person &p)
    {
        this->age += p.age;
        //this指向篇的指針,而*this指向的是篇這個本體
        return *this;
    }
}
//解決名稱沖突
void text01()
{
    Person p1(18);
    cout<<"p1age:"<<p1.age<<endl;
}
//返回對象本身用*this
void text02()
{
    Person p1(10);
    Person p2(10);
    p2.PersonAddAge(p1);
    cout<<"p2的age:"<<p2.age<<endl;//20
    p2.PersonAddAge(p1).PersonAddAge(p1);
    cout<<"p2的age:"<<p2.age<<endl;//30
    //鏈式編程思想
}
int main()
{
    text01();
    text02();
    return 0;
}

主要的用途

當形參和成員變量同名時,可用this指針來區分

在類的非靜態成員函數中返回對象本身,可使用return *this

總結 通過上面我們知道在C++中成員變量和成員函數是分開存儲的每一個非靜態成員函數只會誕生一份函數實例,也就是說多個同類型的對象會共用一塊代碼c++通過提供特殊的對象指針,this指針,解決上述問題。this指針指向被調用的成員函數所屬的對象this指針是隱含每一個非靜態成員函數內的一種指針this指針不需要定義,直接使用即可

最后:this指針指向被調用的成員函數所屬的對象

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

原文鏈接:https://blog.csdn.net/weixin_45920495/article/details/119791355

延伸 · 閱讀

精彩推薦
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
主站蜘蛛池模板: 国产精品久久在线观看 | 日本特级a一片免费观看 | 毛片在线免费观看视频 | 91 在线视频观看 | 538在线精品 | 91热久久免费频精品黑人99 | 免费观看一区二区三区 | 国产成人77亚洲精品www | 色欲香天天天综合网站 | 一级黄色欧美 | 色七七亚洲 | 成人精品一区二区三区中文字幕 | 日韩做爰视频免费 | 国产精品1区2区在线观看 | 成人在线视频播放 | 蜜桃视频最新网址 | 久久国产精品久久久久 | www.精品在线 | 免费看成人av | 日本羞羞的午夜电视剧 | 亚洲一区二区中文 | 国产精品剧情一区二区三区 | 日产精品一区二区三区在线观看 | 史上最强炼体老祖动漫在线观看 | 精品成人免费一区二区在线播放 | 亚洲狠狠入 | 亚洲骚图| 91午夜少妇三级全黄 | 91久久久久久久久久久久久久 | 国产美女三级做爰 | 依依成人综合 | 国产精品午夜一区 | 久久久久久久久日本理论电影 | 久久久久久久亚洲精品 | 毛片免费大全短视频 | 乱淫67194 | 日韩2区 | 黄色片视频免费观看 | 成人免费电影av | 成人视屏在线 | 国产三级国产精品国产普男人 |