#include<iostream>
using namespace std;
//person gun->ak,mp5;
class Gun {
public:
virtual void shoot() {
cout<<"使用了Gun\n";
};
};
class Person {
private:
string name;
Gun* gun;
public:
Person(string a) : name(a) {};
void take(Gun* p) {
gun = p;
}
void shoot() {
cout<<this->name;
gun->shoot();
}
};
class Ak : public Gun{
void shoot() {
cout<<"使用了AK\n";
}
};
class Mp : public Gun{
void shoot() {
cout<<"使用了Mp\n";
}
};
int main() {
Person man("haha");
Ak ak47; Mp mp5;
man.take(&ak47);
man.shoot();
man.take(&mp5);
man.shoot();
}
C++继承/多态的小例子_Gun
最新推荐文章于 2024-08-02 17:56:54 发布