|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <iostream>
#include <string>
class Pet //创建一个Pet类
{
public:
Pet(std::string theName); // 构造器
~Pet(); // 析构器
static int getCount(); //定义了静态函数 getCount ( )
protected:
std::string name; //定义了受protected访问控制的字符串属性 name
private:
static int count; //定义了受private访问控制的 int 属性 count
};
class Dog : public Pet //创制了个 Dog 类,并继承了Pet类
{
public:
Dog(std::string theName); //Dog的构造器,并有个字符串形式的参数 theName
};
class Cat : public Pet //创制了个 Cat 类,并继承了Pet类
{
public:
Cat(std::string theName); //Cat的构造器,并有个字符串形式的参数 theName
};
int Pet::count = 0; //为Pet类的属性count分配内存并赋值为0
Pet::Pet(std::string theName) //写 Pet 构造器的代码
{
name = theName; //把Pet构造器参数赋给 Pet的属性 name.
count++; //count + 1
std::cout << "一只宠物出生,名字叫:" << name << "\n";
std::cout << "已经诞生了 ”<< Pet::getCount() << "只宠物!“\n\n";
}
Pet::~Pet() //写Pet 析构器代码
{
count--; //count - 1
std::cout << name << "挂掉了";
std::cout << "现在还有 " << Pet::getCount() << "宠物\n\n";
}
int Pet::getCount() //写getCount ( ) 代码
{
return count;
}
Dog::Dog(std::string theName) : Pet(theName) //Dog构造器 继承了 Pet 的构造器
{
}
Cat::Cat(std::string theName) : Pet(theName) //Cat构造器 继承了 Pet 的构造器
{
}
int main()
{
Dog dog("Tom"); //生成一个Dog类风格的对象 dog 对象参数 Tom
Cat cat("Jerry"); //生成一个Cat类风格的对象 cat 对象参数 Jerry
{
Dog dog_2("Tom_2"); //生成一个Dog类风格的对象 dog_2 对象参数 Tom_2
Cat cat_2("Jerry_2"); //生成一个Cat类风格的对象 cat_2 对象参数 Jerry_2
}
return 0;
} |
|