C++ 类this及返回自身对象的引用方式

C++ 类this及返回自身对象的引用方式

this指针

每个非静态成员函数都有一个隐含的形参,即指向该类对象的指针。这个指针就是this指针。通过this指针,我们可以访问到类的所有成员变量和成员函数。

在C++中,关键字this用来指向当前对象。this指针是一个隐式参数,它在成员函数内部使用。

返回自身对象的引用

在C++中,返回自身对象的引用是一种常见的编程技巧。它可以方便地实现连续的函数调用,即链式调用。如:

Car myCar;
myCar.setName("Tesla").setColor("Black").setPrice(100000);

返回自身对象的引用是通过在函数声明处加上引用符&实现的。示例代码如下:

class Car {
public:
    Car& setName(string _name) {
        name = _name;
        return *this;
    }
    Car& setColor(string _color) {
        color = _color;
        return *this;
    }
    Car& setPrice(double _price) {
        price = _price;
        return *this;
    }

private:
    string name;
    string color;
    double price;
};

在上面的代码中,setName、setColor和setPrice函数都返回了当前对象的引用。

这样,我们就可以通过链式调用的方式设置对象的属性值。例如:

Car myCar;
myCar.setName("Tesla").setColor("Black").setPrice(100000);

这段代码可以等价于以下代码:

Car myCar;
myCar.setName("Tesla");
myCar.setColor("Black");
myCar.setPrice(100000);

但是,使用链式调用可以使代码更加简洁明了。

示例代码

下面给出一个更加完整的示例代码:

#include <iostream>
#include <string>

using namespace std;

class Car {
public:
    Car& setName(string _name) {
        name = _name;
        return *this;
    }
    Car& setColor(string _color) {
        color = _color;
        return *this;
    }
    Car& setPrice(double _price) {
        price = _price;
        return *this;
    }
    void display() {
        cout << "name: " << name << endl;
        cout << "color: " << color << endl;
        cout << "price: " << price << endl;
    }

private:
    string name;
    string color;
    double price;
};

int main() {
    Car myCar;
    myCar.setName("Tesla").setColor("Black").setPrice(100000);
    myCar.display();

    return 0;
}

输出结果为:

name: Tesla
color: Black
price: 100000

在上面的代码中,我们定义了一个Car类,并重载了setName、setColor和setPrice函数,使它们可以返回当前对象的引用。然后,在主函数中创建了一个Car对象myCar,并使用链式调用的方式设置了其属性值。最后,调用了display函数显示结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ 类this及返回自身对象的引用方式 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Turbo C 2.0使用教程图文版(使用Turbo C 2.0编写C语言程序)

    Turbo C 2.0使用教程图文版(使用Turbo C 2.0编写C语言程序) 介绍 Turbo C 2.0是一款老式的C语言编程软件,在过去曾经非常受欢迎。尽管目前有更为现代的C语言编程工具,但Turbo C 2.0仍然是一个非常不错的编程工具。在这里,我们将介绍如何使用Turbo C 2.0编写C语言程序。 下载和安装Turbo C 2.0 Turbo…

    C 2023年5月23日
    00
  • c++中的string常用函数用法总结

    c++中的string常用函数用法总结 什么是string string是C++ STL库中的一种字符串类型,提供了丰富的字符串操作函数,可进行字符串拼接、查找、替换、截取、大小写转换等操作。它是基于动态分配内存实现的,这意味着它能够自动管理内存,用户不必操心内存分配和释放的问题。 常用函数总结 1、构建string对象 string():默认构造函数,构造…

    C 2023年5月23日
    00
  • 详解C++ 临时量与临时对象及程序的相关优化

    详解C++ 临时量与临时对象及程序的相关优化 什么是临时量和临时对象 在C++中,我们可以通过语句创建临时变量,这些临时变量被称为临时量(temporary),也称为临时表达式(temporary expression)。例如: int i = 2; int j = i + 3; 在第二个语句中,i + 3是一个临时量,它在完成表达式的计算后就会被销毁。 临…

    C 2023年5月22日
    00
  • 学习C++编程的必备软件

    下面我将为您详细讲解“学习C++编程的必备软件”的完整攻略。 学习C++编程的必备软件 1. C++编译器 C++编译器是你学习编程时必备的工具之一。编译器负责将写好的C++程序翻译成机器可以理解的语言,让计算机可以运行它。以下是几个常用的C++编译器: Visual Studio:Visual Studio是一个非常强大的开发环境,附带了C++编译器和许多…

    C 2023年5月23日
    00
  • Win11遇到错误0xc0000142怎么办? 0xc0000142错误代码的修复方法

    关于“Win11遇到错误0xc0000142怎么办? 0xc0000142错误代码的修复方法”的攻略,我将在下面详细讲解: 1. 什么是0xc0000142错误代码? 在使用Windows 11时, 用户可能会遇到错误代码0xc0000142。这种错误通常与应用程序相关,具体表现为应用程序无法正常启动或崩溃。解决这个问题的首要目标是找到问题的根本原因。 0x…

    C 2023年5月23日
    00
  • C程序 双指针技术

    C程序 双指针技术的完整使用攻略 双指针技术是C语言中常用的一种编程技巧,它通过利用两个指针的相对位置关系,实现快速查找、合并、移动等操作。下面详细讲解一下如何在C程序中使用双指针技术。 1. 双指针技术概述 双指针技术常用于数组操作、链表操作等场景。在使用双指针技术时,我们需要定义两个指针变量p和q,分别指向数组或链表中的元素。p和q可以指向同一个元素,也…

    C 2023年5月9日
    00
  • 实例讲解如何在PHP的Yii框架中进行错误和异常处理

    在Yii框架中进行错误和异常处理需要遵循一定的规范和流程。以下是在Yii框架中进行错误和异常处理的完整攻略: 错误处理 Yii框架提供了CErrorHandler类处理应用程序运行期间产生的错误。CErrorHandler类使用handleError()来捕获错误,并且渲染错误页面或记录错误信息。 捕获错误 set_error_handler(functio…

    C 2023年5月23日
    00
  • C++如何实现BCD码和ASCII码的相互转换

    BCD码是一种二进制编码方式,用来表示十进制数字。在每一个字节中,四位二进制数能够表示一个十进制位的数字。ASCII码则是一种字符编码方式,将每个字符映射为一个唯一的数字。 在C++中,将BCD码转换为ASCII码的一般方法是,将BCD码中的每个数字转换为对应的ASCII码数字。而将ASCII码转换为BCD码的一般方法是,将ASCII码中的每个数字转换为对应…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部