#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;
}
【c++程序】继承的几个问题
最新推荐文章于 2023-06-16 20:13:59 发布