类型的指针指向另一个指针

时间:2015-08-01 09:30:42

标签: c++ pointers

我想知道是否有可能制作一个指针(比方说)类型A指向B型指针?如果有可能那么当你尊重它们时它们会显示相同的值吗? A = double B = int或反之?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你有

T* ptr1;   S* ptr2;

其中TS是两种不同的,无关的(例如通过继承)类型,并希望ptr2指向ptr1

ptr2 = reinterpret_cast<T*>(ptr1);

可能无法通过ptr2进行任何访问,因为它会破坏strict-aliasing rule

答案 1 :(得分:0)

仅当您有A和B子类的基础时才可以这样做。 您可以使用基指针访问A和B,编译器将在运行时决定执行哪个指针。

class Base{
}

class A:Base{
}
class B:base{
}

int main(){
Base* ObjBase;
//accessing class A with Base pointer
ObjBase=new A(); 
//Accessing class B with Base pointer
ObjBase=new B();

}

这是类多态性。当你想拥有一个具有不同子类对象的基类的单个数组

时,你经常会需要它