BZ易风

导航

 

this指针的使用

指针永远指向当前对象

解决命名冲突

*this 指向对象本体

非静态的成员函数才有this指针

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

class Person
{
public:
    Person(int age)
    {
        this->age = age;    //this会把构造时给定的数值传给实例出来的对象
    }

    void compareAge(Person & p)
    {
        if (this->age == p.age)        
        {
            cout << "年龄相等" << endl;
        }
        else {
            cout << "年龄不相等" << endl;
        }
    }
    Person& PlusAge(Person& p)        //引用方式返回自身 不加&则返回的是一个拷贝的值
    {
        this->age += p.age;
        return *this;        //*this指向对象本体   返回对象本体
    }
    int age;
};

void Test101()
{
    Person p1(10);
    Person p2(10);
    p1.compareAge(p2);
    p1.PlusAge(p2).PlusAge(p2).PlusAge(p2);    //p1.PluaAge(p2) 返回的还是p1对象本体,可以无限调用
                                            //把返回的对象继续调用对象的方法,叫做链式编程
    cout << "p1的年龄" << p1.age << endl;
}


int main()
{
    Test101();
    system("Pause");        //阻塞功能
    return EXIT_SUCCESS;    // 返回正常退出
}

 

结果:

 

 

posted on 2021-08-21 17:08  BZ易风  阅读(58)  评论(0编辑  收藏  举报