有人可以告诉我为什么在mA为null时为什么此代码有效吗? 请参见下面的输出。 mA为空,但是调用write方法是有效的。
class A {
public:
void write();
};
void A::write() {
std::cout << "A::write()" << std::endl;
}
class B {
private:
A *mA;
public:
void writea();
};
void B::writea() {
std::cout << mA << std::endl;
std::cout << &(*mA) << std::endl;
(*mA).write();
}
int main()
{
B *b = new B();
b->writea();
delete b;
}
输出:
00000000
00000000
A::write()
谢谢。