今天在看多态,这一部分,写了些验证程序,发现下面的问题:
#include <iostream>
using namespace std;
class Test
{
public:
void TestNullPointer()
{
cout<<"Look, you can access me through a Null Pointer"<<endl;
}
};
int main()
{
Test *p=NULL;
p->TestNullPointer();
}
编译后执行,可以发现,成员函数被执行了。
不知道该如何解释?
想想。。。
明白了,解释如下:
因为这里的TestNullPointer没有用到私有成员,就是this指针传进来,也没有用到,
所以没有报错,如果在函数中使用了成员数据,就会又错了!
还是对于类的内存布局理解不好..