#include <iostream>
class A
{
protected:
int m;
public:
A(){ m = 0; }
void put()
{
add();
std::cout<<m<<std::endl;
}
void add()
{
m += 1;
}
};
class B:public A
{
public:
void add()
{
m += 2;
}
};
int main()
{
A a ;
B b ;
a.put();
b.put();
}
编译后运行结果是什么呢, 1 1 还是1 2呢?
正确答案是1 1,类B继承自A,执行 b.put() 时实际上是运行了A::put(),所以会调用 A::add() 而不是 B::add();
没有评论:
发表评论