在我的 c++ 教科书中,出现了以下代码:
B * pointerToB = new B();
A * pointerToA = pointerToB();
我对指针非常熟悉,但让我感到困惑的是第二行末尾的括号。我以前从未见过这样做过。我期待更多类似的东西:
A * pointerToA = &(*pointerToB);
我已经搜索了我的教科书以获得解释,但没有找到答案。最终,我得出的结论是
A * pointerToA = pointerToB(); // is synonymous with
A * pointerToA = &(*pointerToB); // this line
以下是 A 类和 B 类的实现:
class A {
public:
A (): dataOne(2){}
virtual void whoAmI(){printf("class A");}
private:
int dataOne;
};
class B : public A {
public:
B (): dataOne(4){}
virtual void whoAmI(){printf("class B");}
private:
int dataTwo;
};
我的推理合理吗?