C++ Primer--虚函数与纯虚函数的区别(二)
>total = total;
15 }
16
17 virtual void showmember()= 0; //纯虚函数的定义
18 protected:
19 float speed;
20 int total;
21 };
22
23 class car : public abstractcls
24 {
25 public:
26 car(int aird,float speed,int total):abstractcls(speed,total)
27 {
28 this->aird = aird;
29 }
30
31 virtual void showmember()
32 {
33 cout << speed <<"--------" <
using namespace std;
34 }
35 protected:
36 int aird;
37 };
38 int main()
39 {
40 car b(250,150,4);
41 b.showmember();
42 return 0;
43 }
运行结果想必大家都知道!!就不写了!!
总结:什么时候需要用纯虚函数
1,当想要在基类中抽象出一个方法,且该类被继承类而不能被实例化时。
2,基类的方法必须在派生类中被实现时。
3,多个对象具有公共的抽象属性,但却有不同的实现要求时。
下面我们看一道某公司的面试的笔试题(含金量到底有多少??)
#include
#include
class A
{
public:
void foo()
{
printf("1\n");
}
virtual void fuu()
{
printf("2\n");
}
};
class B:public A
{
public :
void foo()
{
printf("3\n");
}
void fuu()
{
printf("4\n");
}
};
int main()
{
A a;
B b;
A *p = &a;
cout<< "p->foo()---" ; p->foo() ;
cout<<"p->fuu()---";p->fuu();