c++ - 如何重载 operator= 以返回指向成员的指针?

标签 c++ operator-overloading

有类似下面的代码(简化):

struct MyStruct {
    int member1;
    int member2;
};

class MyClass { 
    MyStruct *data;
}


MyClass obj;

// put obj.data in pstruct  
// so obj.data->element1 is the same as pstruct->element1
MyStruct *pstruct = obj;

我不想创建 obj.data 的拷贝,而是返回相同的指针,因此如果我在 pstruct->member1 中进行更改,更改就是在 obj.data->element1 中相同(反之亦然)。

这可能吗?

谢谢

最佳答案

听起来您想要一个从 MyClass 创建 MyStruct* 的转换运算符:

class MyClass {
    MyStruct *data;
public:
    operator MyStruct*() {
       return data;
    }
};

关于c++ - 如何重载 operator= 以返回指向成员的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379160/

相关文章:

c++ - 当调用基类的指针时,赋值运算符是否没有重载?

c++ - 段错误 : 11 ? C++

c++ - "incomplete type is not allowed"错误是什么意思?

c++ - LNK1104 : Cannot open file pthreadsVC2. 库

c++ - 寻找具有某些品质的完全内存数据库

c++ - 如何重载 operator< 以将对象放入集合中

c++ - Clion——为什么我需要输入完整路径?

C++ 读取文件直到找到字符

C++ 重载运算符链表 ADT

c++ - 我没有得到运算符重载