自行设计一个具有实用功能的小程序,使用C++实现,最好体现类的封装,继承和多态性,在代码中注明程序的功

能,适当注释,风格良好,使用Tab缩进,,还会加分啊,谢谢各位【选修的迫不得已】... 能,适当注释,风格良好,使用Tab缩进,, 还会加分啊,谢谢各位【选修的迫不得已】 展开
 我来答
豆子9018
2012-04-21 · 超过17用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:48.3万
展开全部
// 封装:
// 隐藏实现
// 也就是看不到这些功能是如何实现的
class Animal {
public:
virtual void eat(char* food) = 0;
virtual void sleep() = 0;
};

// 继承:
class Dog : public Animal {
public:
virtual void eat(char* food) {
cout << "dog eat " << food << endl;
}

virtual void sleep() {
cout << "dog sleep" << endl;
}

void bark() {
cout << "dog bark" << endl;
}
};

// 继承
class Fish : public Animal {
public:
virtual void eat(char* food) {
cout << "fish eat " << food << endl;
}

virtual void sleep() {
cout << "fish sleep" << endl;
}

void swim() {
cout << "fish swim" << endl;
}
}

// 多态:
// 表面上 dog 的类型变成了 Animal
void foo() {
Dog dog = new Dog();
Animal animal = dog;
dog.eat("bone"); // 正确
dog.bark(); // 正确
animal.eat("bone"); // 正确
animal.bark(); // 编译错误
((Dog)animal).bark(); // 正确
((Fish)animal).sleep(); // 编译通过,运行错误
((Fish)animal).swim(); // 编译通过,运行错误
}
追问
这个是原封不动粘过来的吧,亲,我也见这个了,对程序代码的解释不太好吖,而且是干嘛的程序啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式