
简述C/C++中return *this与return this的差异
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文章探讨了在C++编程语言中使用`return *this`和`return this`时的区别。通过对比分析,解释了引用返回和指针返回的不同应用场景及其带来的效率和语义上的区别。
首先我们知道,在类`Test`的构造函数中有这样的实现:
```cpp
class Test {
public:
Test() { return this; } // 返回的是当前对象的地址
Test& operator= (const Test &other) { return *this; } // 返回的是当前对象本身
private:
//...
};
```
其中,`return *this`返回的是当前对象的克隆或其自身。具体来说:
- 如果返回类型为 `Test`(即拷贝构造函数),则会创建一个副本。
- 如果返回类型为 `Test&`(如赋值操作符重载的情况),则是指代当前对象本身。
而`return this`是用于直接返回指向当前对象的地址,也就是该对象在内存中的位置。再来看一下关于“返回拷贝”的情况:
```cpp
#include
全部评论 (0)
还没有任何评论哟~


