非虚函数:
#include "iostream.h"
class A
{
public:
void funA() { funB(); }
void funB() { cout << "A" << endl; }
};
class B: public A
{
public:
void funB() { cout << "B" << endl; }
};
void main()
{
B b;
b.funA();
}
虚函数:
#include "iostream.h"
class A
{
public:
virtual void funA() { funB(); }
virtual void funB() { cout << "A" << endl; }
};
class B: public A
{
public:
void funB() { cout << "B" << endl; }
};
void main()
{
B b;
b.funA();
}
运行结果:
非虚函数显示:A
虚函数显示: B
能否从基本原理上帮我解释一下?
#include "iostream.h"
class A
{
public:
void funA() { funB(); }
void funB() { cout << "A" << endl; }
};
class B: public A
{
public:
void funB() { cout << "B" << endl; }
};
void main()
{
B b;
b.funA();
}
虚函数:
#include "iostream.h"
class A
{
public:
virtual void funA() { funB(); }
virtual void funB() { cout << "A" << endl; }
};
class B: public A
{
public:
void funB() { cout << "B" << endl; }
};
void main()
{
B b;
b.funA();
}
运行结果:
非虚函数显示:A
虚函数显示: B
能否从基本原理上帮我解释一下?