首页 > 编程语言 >《C++ —— 笔记》

《C++ —— 笔记》

时间:2023-01-01 17:45:52浏览次数:47  
标签:函数 age 笔记 Person C++ 成员 指针

 

 

this指针

在C++中成员变量和成员函数是分开存储的。

每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。

那么问题是:这一块代码是如何区分那个对象调用自己的呢?

this指针是隐含每一个非静态成员函数内的一种指针

this指针的用途:

* 当形参和成员变量同名时,可用this指针来区分
* 在类的非静态成员函数中返回对象本身,可使用return *this

eg:

class Person
{
public:

    Person(int age)
    {
        //1、当形参和成员变量同名时,可用this指针来区分
        this->age = age;
    }

    Person& PersonAddPerson(Person p)
    {
        this->age += p.age;
        //返回对象本身
        return *this;
    }

    int age;
};

void test01()
{
    Person p1(10);
    cout << "p1.age = " << p1.age << endl;

    Person p2(10);
    p2.PersonAddPerson(p1).PersonAddPerson(p1).PersonAddPerson(p1);
    cout << "p2.age = " << p2.age << endl;
}

int main() {

    test01();

    system("pause");

    return 0;
}

 

标签:函数,age,笔记,Person,C++,成员,指针
From: https://www.cnblogs.com/zhuangquan/p/17018337.html

相关文章

  • C/C++备件管理系统
    C/C++备件管理系统综合项目(二)为某制造企业设计备件管理系统,主要包括如下功能:1)用户登录管理:管理员和普通用户权限及职能:管理员仅1名,为初始成员;普通用户可以是多名,普通用......
  • C/C++ 调用标准库函数实现 std::string to std::wstring 相互字符集变换(转)
    转自:https://blog.csdn.net/liulilittle/article/details/127697458#include<locale>#include<codecvt>#include<string>#include<vector>#if_MSC_VER>=1600......
  • C++ Primer第三章知识点(想起来啥记啥版)
    命名空间#include<iostream>//using声明,当我们使用名字cin时,从命名空间std中获取它usingstd::cin;intmain(){inti;cin>>i;//正确:cin和st......
  • 【React自学笔记08】React18Hook补充
    关于钩子函数的使用注意事项:钩子只能在React组件和自定义钩子中使用钩子不能在嵌套函数或其他语句(if、switch、white、for等)中使用React中自带的钩子函数useStateu......
  • 算法之Floyd-Warshall算法【c++】【图论】【最短路】
    我们作为刚学图论的小蒟蒻,先接触到的算法一定是图上最短路径算法。而最短路算法中最简单的当属Floyd-Warshall算法。下面是一些基本介绍:​该算法可以计算图上任意两点间......
  • Android笔记--对话框
    提醒对话框AlertDialog具体实现:相关用法:日期对话框DatePickerDialogDatePicker具体实现:使用Dialog选择日期:时间对话框TimePickerDialog使用方法与Dat......
  • C++ | 2-移动
    如何实现移动有分开的拷贝构造和移动构造函数。有swap成员函数,支持和另外一个对象快速交换成员。你的对象的名空间下,应当有一个全局的swap函数,调用成员函数swap来......
  • C++公司员工考勤管理系统[2023-01-01]
    C++公司员工考勤管理系统[2023-01-01]题目15“公司员工考勤管理系统设计”1、问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇......
  • 面试笔试刷题 C++ (持续更新)
    阅读C++语言代码输出()​​int​​​​main()​​​​{​​​​int​​​​arr[]={​​​​1​​......
  • OpenCV+yolov3实现目标检测(C++,Python)
    OpenCV+yolov3实现目标检测(C++,Python)  目标检测算法主要分为两类:一类是基于RegionProposal(候选区域)的算法,如R-CNN系算法(R-CNN,FastR-CNN,FasterR-CNN),它们是two-st......