C++类与对象、构造函数、成员权限限定应用实例

更多资料请点击:我的目录
本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。

要求:设计一个类(Kitty),用来表征小猫咪。假定每只小猫在创建时都有固定的毛色和性别,体重会随着吃而逐渐增加。
成员数据包括:
体重(weight)
性别(sex) :雄(male)、雌(female)
毛色(color):黑(black)、白(white)、棕(brown)

成员方法包括:
吃(eat)
睡(sleep)
卖萌(actingCute)
查看身体各项指标(info)

kitty.h部分:

#ifndef KITTY_H
#define KITTY_H


class kitty
{
    
    
private:
    int weight;                                                 //体重

public:
    enum gender {
    
    male, female} sex;                             //枚举性别
    enum coat {
    
    white, black, brown} color;                      //枚举毛色
    kitty(float w, enum gender s, enum coat c = white);         //生小猫,毛色默认白色
    void eat();
    void sleep();
    void info();                                                //输出小猫当前状态
};

#endif // KITTY_H

kitty.c部分:

#include <iostream>
#include "kitty.h"

using namespace std;

kitty::kitty(float w, enum gender s, enum coat c)
{
    
    
    weight = w;
    sex = s;
    color = c;
    cout << "生了只小猫!! " << endl;
}

void kitty::eat()
{
    
    
    if(weight > 8)
    {
    
    
        cout << "so fat! can not eat too more!!" << endl;
    }
    else
    {
    
    
        cout << "eat a little...weight++" <<endl;
        weight++;
    }
}

void kitty::sleep()
{
    
    
    cout << "sleeping ..... weight++." << endl;
    weight++;
}


void kitty::info()
{
    
    
    cout <<"猫咪体重:" << weight << "斤" << endl;

    switch(sex)
    {
    
    
        case male:
            cout << "性别 : 男" << endl;
            break;
        case female:
            cout << "性别 : 女" << endl;
            break;
    }

    if(color == white)                              //判断毛色:if写法
            cout << "毛色 : 白色" << endl;
    if(color == black)
            cout << "毛色 : 黑色" << endl;
    if(color == brown)
            cout << "毛色 : 棕色" << endl;

    switch(color)                                   //判断毛色:switch/case写法
    {
    
    
        case white:
            cout << "毛色 : 白色" << endl;
            break;
        case black:
            cout << "毛色 : 黑色" << endl;
            break;
        case brown:
            cout << "毛色 : 棕色" << endl;
            break;
    }
}

main.c部分:

#include <iostream>
#include "kitty.h"

using namespace std;

int main()
{
    
    
    kitty mycat(3.2, kitty::male, kitty::black);            //默认白色
    //kitty mycat(3.2, kitty::male);                        //默认白色
    mycat.info();
    cout << endl;

    mycat.eat();
    mycat.eat();
    mycat.eat();
    mycat.sleep();
    mycat.eat();
    mycat.eat();
    mycat.eat();
    mycat.sleep();

    cout << endl;
    mycat.info();
    return 0;
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/108349463