iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++简明图解this指针的使用
  • 440
分享到

C++简明图解this指针的使用

2024-04-02 19:04:59 440人浏览 薄情痞子
摘要

目录成员数据和成员函数的存储方式this指针的引入this指针概述this指针的使用c++的封装性:将数据 和 方法 封装在一起 数据 和 方法 是分开存储。 每个对象 拥有独立的数

c++的封装性:将数据 和 方法 封装在一起

数据 和 方法 是分开存储。

每个对象 拥有独立的数据.

每个对象 共享同一个方法。

成员数据和成员函数的存储方式

1、成员函数不占类的空间

2、静态成员数据不占类的空间

this指针的引入

class Data
{
public:
    int m_num;
 
    void setNum(int num)
    {
        m_num = num;
    }
};
void test01()
{
    Data ob1;
    ob1.setNum(10);
    cout<<"ob1.m_num = "<<ob1.m_num<<endl;
    Data ob2;
    ob2.setNum(20);
    cout<<"ob2.m_num = "<<ob2.m_num<<endl;
    Data ob3;
    ob3.setNum(30);
    cout<<"ob3.m_num = "<<ob3.m_num<<endl;
}

运行结果:

this指针概述

1、对象调用普通成员函数 在成员函数内部会产生一个指向该对象的this指针(this指针变量 是系统定义的)

2、this指针的目的:说明当前成员函数 是属于哪个对象的

3、静态成员函数内部 没有this指针

class Data
{
public:
    int m_num;
    void setNum(int num)
    {
        //m_num = num;
        this->m_num = num;
    }
};
void test01()
{
    Data ob1;
    ob1.setNum(10);
    cout<<"ob1.m_num = "<<ob1.m_num<<endl;
    Data ob2;
    ob2.setNum(20);
    cout<<"ob2.m_num = "<<ob2.m_num<<endl;
    Data ob3;
    ob3.setNum(30);
    cout<<"ob3.m_num = "<<ob3.m_num<<endl;
}

运行结果:

注意:

1、this指针是隐含在对象成员函数内的一种指针

2、成员函数通过 this指针 即可知道操作的是那个对象的数据(定位对象)

3、静态成员函数内部没有this指针,静态成员函数不能操作非静态成员变量

(静态成员函数 是属于类 函数内部 没有this指针)

this指针的使用

1、当形参和成员变量同名时,可用this指针来区分

class Data
{
public:
    int num;
    //形参 和成员名相同
    void setNum(int num)
    {
        //形参num
        //成员num  this->num
        //num= num;//就近原则 形参num 赋值给 形参num
        this->num = num;
        //将形参num 赋值给 对象中成员num
    }
};

2、在类的普通成员函数中返回对象本身(*this)(重要)

class MyCout
{
public:
    MyCout& myCout(char *str)
    {
        cout<<str;
        return *this;/
    ob.myCout("hehe").myCout("haha").myCout("xixi");//ob.myCout("hehe") == ob
    return 0;
}

运行结果:

3、如果成员数据和函数的形参 同名 必须使用this指针

class Data
{
public:
    int a;//4B
public:
    void setA(int a)
    {
        this->a = a;
        return;
    }
    int getA(void)
    {
        return this->a;
    }
};

4、this指针完成链式操作

class Printf
{
public:
    Printf& myPrint(int value)
    {
        cout<<value<<" ";
        //*this ==外界的对象
        return *this;
    }
};
void test01()
{
    Printf ob;
    ob.myPrint(10).myPrint(20).myPrint(30).myPrint(40);
    cout<<endl;
}

到此这篇关于C++简明图解this指针的使用的文章就介绍到这了,更多相关C++ this指针内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++简明图解this指针的使用

本文链接: https://www.lsjlt.com/news/150423.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++简明图解this指针的使用
    目录成员数据和成员函数的存储方式this指针的引入this指针概述this指针的使用c++的封装性:将数据 和 方法 封装在一起 数据 和 方法 是分开存储。 每个对象 拥有独立的数...
    99+
    2024-04-02
  • C语言简明介绍指针的使用
    目录1. 指针类型2. 野指针3. 指针的运算3.1 指针+-整数3.2指针-指针3.3 指针的关系运算4. 指针数组1. 指针类型 指针以字节为单位; 指针类型决定了解引用时能访问...
    99+
    2024-04-02
  • C++ this指针和空指针的具体使用
    每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码那么问题是:这—块代码是如何区分那个对象调用自己的呢? C++通过提供特殊的对象指针,this...
    99+
    2024-04-02
  • C++ 中this指针的用途详解
    目录1.区分形参和变量同名时:2.return *this返回函数本身总结先说结论: 1.形参和变量同名时,可用this指针来区分 2.在类的非静态成员函数中返回本身,可用retur...
    99+
    2024-04-02
  • c++中this指针的用法详解
    this 指针是 c++ 中的特殊指针,指向当前对象实例,用于访问成员变量、调用成员函数,传递给其他函数,限制对成员的访问,以及与其他指针区分。 this 指针在 C++ 中的用法 t...
    99+
    2024-05-08
    c++
  • 怎么在C++中使用this指针和空指针
    本篇文章为大家展示了怎么在C++中使用this指针和空指针,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++通过提供特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属...
    99+
    2023-06-14
  • C++ const的使用及this指针常方法(面试最爱问的this指针)
    目录1. const的使用2. this指针 2.1 前言(this指针的引出)2.2 什么是this指针2.3 this指针的特性2.4 [面试题1] this指针存在哪...
    99+
    2024-04-02
  • C++中类的this指针怎么使用
    这篇“C++中类的this指针怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++中类的this指针怎么使用”文章吧...
    99+
    2023-06-29
  • C++this指针怎么理解
    C++this指针怎么理解,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。还是Stock股票这个类,假设我们要实现一个方法,比较一下当前股票和传入的股票, 返回价格高的那个股票。...
    99+
    2023-06-22
  • C++中this指针理解及作用
    目录01、C++程序到C程序的翻译02、this指针的作用03、this指针和静态成员函数04、小结01、C++程序到C程序的翻译 想要理解C++语言中的this指针,下面我们做一个...
    99+
    2024-04-02
  • c++中this指针的含义
    c++ 中的 this 指针指向调用成员函数的当前对象,它允许函数访问对象成员变量和函数。其作用包括:访问对象成员变量;调用对象成员函数;作为对象引用的代理。 C++ 中的 this ...
    99+
    2024-05-10
    c++
  • C++中的this指针有什么用
    这篇文章主要介绍“C++中的this指针有什么用”,在日常操作中,相信很多人在C++中的this指针有什么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++中的this指针有什么用”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • c++中this指针的特点
    this 指针在 c++ 中指向正在执行方法的调用对象。其特点包括:自引用隐式传递类型限定支持常量和引用用于虚函数仅在非静态成员函数中可用在进入和退出非静态成员函数时初始化和销毁 C+...
    99+
    2024-05-08
    c++
  • C++中的this指针的功能
    这篇文章主要讲解了“C++中的this指针的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中的this指针的功能”吧!this指针是一个特殊的指针,当类的某个非静态的成员函数在执行...
    99+
    2023-06-17
  • C++函数指针,对象指针,this指针,指向类静态怎么用
    这篇文章主要介绍了C++函数指针,对象指针,this指针,指向类静态怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++函数指针,对象指针,this指针,指向类静态怎么用文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • C++的this指针实例分析
    这篇文章主要介绍了C++的this指针实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++的this指针实例分析文章都会有所收获,下面我们一起来看看吧。this指针是存在与类的成员函数中,指向被调用函数...
    99+
    2023-06-27
  • C++对象模型与this指针怎么使用
    这篇“C++对象模型与this指针怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++对象模型与this指针怎么使用...
    99+
    2023-06-30
  • C语言简明分析指针与引用的具体用法
    目录1、指针2、引用1、指针 在计算机中,数据是存放在内存单元中的,一般把内存中的一个字节称为一个内存单元。为了更方便地访问这些内存单元,可预先给内存中的所有内存单元进行地址编号,根...
    99+
    2024-04-02
  • C++对象模型和this指针详解
    目录对象模型一、二、三、四、五、this指针一、二、总结对象模型 成员变量和成员函数分开存储 一、 只有非静态成员变量才属于类的对象上 空对象占用字节为1 class Pe...
    99+
    2024-04-02
  • 一起来学习C++中类的this指针以使用
    目录一,this指针的注意点错误用例:二,this指针存在哪里三,this指针的面试坑题总结c++的类中,非静态的成员函数都有一个隐藏的this指针,在函数体中所以的成员变量都是通过...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作