利用 * 重载 ->
时间: 2023-07-06 12:11:39 浏览: 113
指针操作符
重载箭头运算符 -> 的目的是方便对类对象成员的访问。当一个类中包含指向其他对象的指针成员时,使用箭头运算符可以直接访问该指针所指向的对象的成员,避免了使用间接寻址操作符 * 的繁琐过程。
具体实现时,需要定义一个重载箭头运算符的成员函数,其返回类型必须是指针或类对象的引用,然后在该函数内部使用指针成员进行对象访问操作,并返回结果即可。
例如,假设我们有一个名为 MyClass 的类,其中包含一个成员变量 ptr,类型为指向另一个对象的指针。现在我们想要通过箭头运算符访问该指针所指向的对象的成员变量 x,可以这样实现:
```c++
class MyClass {
public:
// 重载箭头运算符
OtherClass* operator->() {
return ptr;
}
private:
OtherClass* ptr;
};
// 使用箭头运算符访问成员变量 x
MyClass obj;
int x = obj->x;
```
阅读全文