2010年12月14日星期二

C++ 继承类调用父类的函数

代码如下所示:


#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();

没有评论:

发表评论