在c++中,class A { public: int* p1; }; class B { }; A a; B b; B* bp[100]; bp[0] = new B();如何利用bp[0]使a->p1指向 bp[0]指向的对象?
时间: 2024-01-26 17:03:11 浏览: 21
由于`A`类中的`p1`成员变量是一个指针类型,可以通过以下方式将其指向`bp[0]`指向的对象:
```
a.p1 = reinterpret_cast<int*>(bp[0]);
```
这里使用`reinterpret_cast`强制类型转换,将`bp[0]`指向的`B`类型的对象的地址转换成`int`类型的指针,然后将其赋值给`a.p1`。需要注意的是,这种类型转换是不安全的,因为`B`类型和`int`类型在内存布局上可能不同,可能会导致未定义的行为。所以最好避免这种做法,除非你确实知道自己在干什么。
阅读全文