看不出虚继承,虚函数,纯虚函数与普通的继承,和函数的区别在哪里。
我知道这主要体现在面向对象的一大特征:多态—重写。
他们的作用,我不用虚~也可以实现,但是书上说这是面向对象编程最基本的,也就是说如果不懂虚函数与纯虚函数也就等于不懂面向对象的编程。
请各位朋友,解释一下。并举例说明一下谢谢。
[解决办法]
虚继承是用来处理多继承的问题的
虚函数是在基类中该处默认实现的情况下,子类还可以给出自己的实现
虚继承是接口基础,也就是基类只给出接口而不给出实现,实现必须要子类给出
普通的函数:子类可以屏蔽基类的函数,给出另外的实现
他们最大的区别在于虚什么的全是运行期处理的问题,而普通的继承则是在编译期处理的问题。
[解决办法]
虚函数,普通函数
class A{
public:
void print(){std::cout<<"from the class A"<<std::endl;
}
class B:public A{
public:
void print(){std::cout<<"from the class B"<<std::endl;
}
int main(){
B b;
A *a;
b.print();
a=&b;
a->print();
}
输出结果是
from the class B
from the class A
如果print的声明为 virtual void print()...
的话,结果将会是:
from the class B
from the class B