在c++中,定义了一个类A,有数据成员*p1,定义了一个类B,有A类对象a,B类对象b,指向b的指针*p2,如何利用p2使a.p1指向b?
时间: 2023-12-24 11:05:05 浏览: 132
C++ 指向类成员的指针
可以使用以下代码实现:
```
#include <iostream>
using namespace std;
class A {
public:
int* p1;
};
class B {
public:
A a;
};
int main() {
B b;
A* p2 = &(b.a);
b.a.p1 = new int(10); // 给b.a.p1赋值
*p2->p1 = *(b.a.p1); // 通过p2指针将a.p1指向b
cout << *(b.a.p1) << endl; // 输出10
cout << *(p2->p1) << endl; // 输出10
delete b.a.p1; // 释放内存
b.a.p1 = nullptr; // 将指针置为nullptr
return 0;
}
```
首先定义类A和类B,类A有一个int类型指针p1,类B有一个A类型对象a。在主函数中,定义一个指向a的指针p2,然后给b.a.p1赋值。最后通过p2指针将a.p1指向b。注意,在进行完操作后需要记得释放内存并将指针置为nullptr。
阅读全文