1

在我的 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;
};

我的推理合理吗?

4

0 回答 0