最帅的老饼 发表于 2018-3-2 22:48:35

C++快速入门第21课,程序理解和注释

#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;
}

最帅的老饼 发表于 2018-3-2 22:50:59

本帖最后由 最帅的老饼 于 2018-3-2 22:58 编辑

写了注释 如果有理解错误请指出,并且把代码作了小小修改。

叻叻猪 发表于 2020-2-13 15:19:09

感谢lz,为我解决了一个问题
页: [1]
查看完整版本: C++快速入门第21课,程序理解和注释