zoukankan      html  css  js  c++  java
  • 链式编程和this的使用

    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;    // 返回正常退出
    }

    结果:

     

  • 相关阅读:
    逻辑运算(二)
    Rust基础类型
    Rust简单demo
    逻辑基础(一)
    webpack配置typescript项目
    Go并发原理
    JS实现取任意类型的数组交集并集方法的思考
    JS 可逆加密的一种实现
    所有中文复姓
    将中文姓名转为拼音英文名的一种实现
  • 原文地址:https://www.cnblogs.com/yifengs/p/15170033.html
Copyright © 2011-2022 走看看