点点币pos:C++考试题目,虚函数,求解!
大虾救我!
#include <iostream>
using namespace std;
class Vehicle
{
public:
virtual void Name()
{
cout << "Vehicle<<endl;
}
};
class car : public Vehicle
{
public:
virtual void Name()
{
cout <<"car"<<endl;
}
};
class truck :public Vehicle
{
public:
virtual void Name()
{
cout<<"truck"<<endl;
}
};
int main()
{
Vehicle* p1 = NULL ;
Vehicle* p2 = NULL ;
Vehicle* p3 = NULL ;
p1 = new Vehicle;
p1->Name();
delete p1;
p2 = new car;
p2->Name();
delete p2;
p3 = new truck;
p3->Name();
delete p3
return 0;
}
输出结果将是
Vehicle
car
truck
在Vehicle类中定义一个display的虚函数
后在car和truck中各定义一个display
可用
{
Vehicle *p;
car c;
truck t;
p=&c;
p->display;
p=&t;
p->display;
}
来实现
深海渔人的main函数部分该成
int main()
{
Vehicle* p1 = NULL ;
p1 = new Vehicle;
p1->Name();
delete p1;
p1 = new car;
p1->Name();
delete p1;
p1 = new truck;
p1->Name();
delete p1
return 0;
}
就更能体现虚函数的动态绑定作用了