在我的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;
};
我的推理是否合理?