#include<iostream> using namespace std; class Animal { private: char name[20]; protected: int age; public: void setName(char *name) { strcpy_s(this->name,name); } void setAge(int age) { this->age=age; } char *getName() { return name; } int getAge() { return age; } void show(bool bNewLine) { cout<<name<<':'<<age; if(bNewLine) cout<<endl; } }; class Bird:public Animal { double weight; public: void setWeight(double weight) { this->weight=weight; } double getWeight() { return weight; } void fly() { cout<<"我终于翱翔用心凝望"<<endl; } void visit_parent() { //cout<<"name="<<name<<endl;//ERROR cout<<getName()<<endl; cout<<age<<endl; } void show() { Animal::show(false); cout<<getName()<<'\t'<<getAge()<<'\t'<<weight<<'\t'<<endl; } void show(bool bNewLine) { Animal::show(bNewLine); } }; int main() { /*Animal a1,a2; a1.setName("团团"); a1.setAge(300); a2.setName("圆圆"); a2.setAge(200); cout<<a1.getName()<<'\t'<<a1.getAge()<<endl; cout<<a2.getName()<<'\t'<<a2.getAge()<<endl;*/ //Animal a1; //a1.fly(); //Animal a1; Bird b1; b1.setName("鸽子"); b1.setAge(33); b1.setWeight(100); //cout<<b1.getName()<<'\t'<<b1.getAge()<<'\t'<<b1.getWeight()<<'\t'<<endl; //b1.fly(); b1.show();//子类的show,会覆盖父类的同名函数 b1.show(true);//b1.Animal::show(true); //cout<<b1.age<<endl; ERROR //cout<<a1.age<<endl; }
时间: 2024-11-26 03:32:23