定义一个Animal,该类中可以存放动物的名字,并有一个Identity函数用于显示动物的种类。定义两个类Cat和Dog,都继承自Animal,并重载Identity函数,不但要显示动物的种类,还要显示动物的名字。
#include<iostream>
#include<string>
using namespace std;
class Animal
{
protected:
string Ani_name;
string Ani_species;
public:
Animal(string name, string species = "初始化")
:Ani_name(name), Ani_species(species)
{ }
virtual void identity()
{
cout << Ani_species << endl;
}
};
class Cat : public Animal
{
public:
Cat()
:Animal("汤姆", "猫")
{ }
void identity()
{
cout << "名字:" << Ani_name << endl;
cout << "种类:" << Ani_species << endl;
}
};
class Dog : public Animal
{
public:
Dog()
:Animal("斯派克", "狗")
{ }
void identity()
{
cout << "\n名字:" << Ani_name << endl;
cout << "种类:" << Ani_species << endl;
}
};
int main()
{
Cat cat;
Dog dog;
cat.identity();
dog.identity();
return 0;
}
定义一个教师类,由教师类派生出讲师、副教授、教授类。教师的工资分别由基本工资、课时费和津贴构成。假设讲师、副教授、教授的基本工资分别为800、900、1000元,课时费分别为每小时40、45、50元,津贴分别为1300、1800、2300。定义虚函数来计算教师的工资,并通过主函数来进行验证。
#include<iostream>
#include<string>
using namespace std;
class Teacher
{
protected:
double Tea_basicWage;
double Tea_classFee;
double Tea_perk;
public:
Teacher(int basicwage, int classfee, int perk)
:Tea_basicWage(basicwage), Tea_classFee(classfee), Tea_perk(perk)
{ }
virtual void sum_wage()
{
cout << "工资:" << Tea_basicWage + Tea_classFee + Tea_perk <<endl;
}
};
class Lecturer : public Teacher
{
public:
Lecturer()
:Teacher(800, 40 ,1300)
{
cout << "\n讲师" << endl;
}
};
class Associate_professor : public Teacher
{
public:
Associate_professor()
:Teacher(900, 45 ,1800)
{
cout << "\n副教授" << endl;
}
};
class Professor : public Teacher
{
public:
Professor()
:Teacher(1000, 50 ,2300)
{
cout << "\n教授" << endl;
}
};
int main()
{
Lecturer lec;
lec.sum_wage();
Associate_professor Apro;
Apro.sum_wage();
Professor pro;
pro.sum_wage();
return 0;
}