案例1

设计立方体类

设计立方体类(fang)

求出立方体的表面面积和体积

分别用全局函数和成员函数判断两个立方体是否相等

#include <iostream>
using namespace std;

// 创建一个立方体的类
// 设计属性和行为
// 获取立方体的面积和体积
// 分别利用全局函数和成员函数 判断两个立方体是否相等
class fang
{
public:
    // 行为

    // 设置 长 宽 高
    void setL(int l)
    {
        m_l = l;
    }

    void setW(int w)
    {
        m_w = w;
    }

    void setH(int h)
    {
        m_h = h;
    }

    // 获取 长 宽 高
    int getL()
    {
        return m_l;
    }

    int getW()
    {
        return m_w;
    }

    int getH()
    {
        return m_h;
    }

    // 获取立方体面积
    int fangS()
    {
        return 2 * m_w * m_l + 2 * m_w * m_h + 2 * m_h * m_l;
    }

    // 获取立方体体积
    int fangV()
    {
        return m_h * m_l * m_w;
    }

    // 利用成员函数判断两个立方体相不相等
    bool ifclass_name(fang &c)
    {
        if (m_l == c.getL() && m_w == c.getW() && m_l == c.getL())
        {
            return true;
        }
        return false;
    }

private:
    int m_l; //
    int m_w; //
    int m_h; //
};
// 利用全局函数判断 两个立方体是否相等
bool ifname(fang &fang1, fang &fang2)
{
    if (fang1.getL() == fang2.getL() && fang1.getW() == fang2.getW() && fang1.getL() == fang2.getL())
    {
        return true;
    }
    return false;
}

int main(void)
{
    fang fang1; // 创建对象
    fang1.setL(10);
    fang1.setH(10);
    fang1.setW(10);

    // 600
    // 1000
    cout << "fang 1的面积为 " << fang1.fangS() << endl;
    cout << "fang 1的体积为 " << fang1.fangV() << endl;

    // 创建第二个立方体
    fang fang2;
    fang2.setL(10);
    fang2.setH(10);
    fang2.setW(11);
    cout << "fang 2的面积为 " << fang2.fangS() << endl;
    cout << "fang 2的体积为 " << fang2.fangV() << endl;

    bool ret = ifname(fang1, fang2);
    if (ret)
    {
        cout << "相等" << endl;
    }
    else
    {
        cout << "不相等" << endl;
    }

    // 利用成员判断是否相等
    ret = fang1.ifclass_name(fang2);

    if (ret)
    {
        cout << "相等" << endl;
    }
    else
    {
        cout << "不相等" << endl;
    }

    system("pause");
    return 0;
}