C++基类指针怎么调用派生类的方法

图片说明#include
using namespace std;

class Vehicle{
public:
stop(){
cout<<"停止"<<endl;
system("pause");
}
run(){
cout<<"I'm vehicle"<<endl;
}
};

class Bicycle:public Vehicle{
public:
run(){
cout<<"I'm Bicycle"<<endl;
}
Bicycle(){};
};
class Motorcar:public Vehicle{
public:
run(){
cout<<"I'm Motorcar"<<endl;
}
};
class Motorcycle:public Bicycle,public Motorcar{
public:
run(){
cout<<"I'm Motorcycle"<<endl;
}
};
int main(int argc,char argv[]){
Vehicle
p;
Vehicle veh;
Bicycle bic;
Motorcar mot;
Motorcycle moto;

p=&veh;
p->run();
p=&bic;
p->run();
p=&mot;
p->run();
moto.run();

// p=&moto;
// p->run(); Vehicle类型指针不能指向moto对象
return 0;
}

基类指针调用派生类的方法,属于 多态。
要实现多态,需要借助关键字 virtual 。

基类指针调用派生类的方法,属于 多态
要实现多态,需要借助关键字 virtual

推荐这篇博客,讲得很清楚:
http://huqunxing.site/2016/09/08/C++%20%E4%B8%89%E5%A4%A7%E7%89%B9%E6%80%A7%E4%B9%8B%E5%A4%9A%E6%80%81/

如果对您有帮助,请采纳答案好吗,谢谢!

是多态,用virtual试试