人吃饭

#include <bits/stdc++.h>

using namespace std;

class Person {

public:

virtual void eat() = 0;

virtual void pay() = 0;

};

class Chinese : public Person {

public:

Chinese() {

cout << "中国人进入餐厅" << endl;

}

~Chinese() {

cout << "中国人离开餐厅" << endl;

}

void eat() {

cout << "中国人用筷子吃饭" << endl;

}

void pay() {

cout << "中国人用微信支付" << endl;

}

};

class American : public Person {

public:

American() {

cout << "美国人进入餐厅" << endl;

}

~American() {

cout << "美国人离开餐厅" << endl;

}

void eat() {

cout << "美国人用叉子吃饭" << endl;

}

void pay() {

cout << "美国人用信用卡支付" << endl;

}

};

class Indian : public Person {

public:

Indian() {

cout << "印度人进入餐厅" << endl;

}

~Indian() {

cout << "印度人离开餐厅" << endl;

}

void eat() {

cout << "印度人用手吃饭" << endl;

}

void pay() {

cout << "印度人用现金支付" << endl;

}

};

void processMeal(Person& p) {

p.eat();

p.pay();

}

int main() {

Person* p = 0;

Chinese c;

American a;

Indian i;

p = &c;

processMeal(*p);

p = &a;

processMeal(*p);

p = &i;

processMeal(*p);

return 0;

}

全部评论

相关推荐

昨天 15:12
门头沟学院 运营
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务