结论如题:
设计实验如下
#include <cstdio>
class A
{
int length;
int width;
public:
A(int _length = 1,int _width = 2)
{
length = _length;
width = _width;
}
int Area()
{
return this->length*this->width;
}
};
class B: public A
{
int length;
int width;
public:
B(): A(){
length = 3;
width = 4;
}
};
int
main(int argc, char* argv[])
{
B b;
std::printf("%d", b.Area());
}
结果输出了2
而不是12,说明this指针指向内部的A,而不是根据实例的类型判断读取B
某种程度上这样的静态绑定才是合理的~
想多了