初学类

这里有几个案例来快速了解 类

//案例一 设计立方体类(cuba) 求出立方体的体积和面积
//          判断两个立方体是否相等(全局函数)

#include <iostream>
using namespace std;

class cuba
{
private :           // 私有成员
    int m_a;
    int m_b;
    int m_c;
    int m_s;
    int m_v;

public :
    double get_a()
    {
        return m_a;
    }
    double get_b()
    {
        return m_b;
    }
    double get_c()
    {
        return m_c;
    }
    void set_a(int a)  // 给变量赋值
    {
        m_a = a;
    }
    void set_b(int b)
    {
        m_b = b;
    }
    void set_c(int c)
    {
        m_c = c;
    }
    void set_abc(int a, int b, int c)
    {
        m_a = a;
        m_b = b;
        m_c = c;
    }
public:

    int get_s()
    {
        m_s = 2*((m_a * m_b) + (m_a * m_c) +(m_b * m_c ));
        return m_s;
    }
    int get_v()
    {
        m_v = m_a * m_b * m_c;
        return m_v;
    }
    int judecuba(cuba &c1, cuba & c2)  // c1太多了
    {
        if (    (c1.m_a == c2.m_b) &&
                (c1.m_b == c2.m_b) &&
                (c1.m_c == c2.m_c)
           )
            return 1;
        else
            return 0;
    }
    //函数调用 去执行c1对象的成员judecuba
    // 因为此函数是类内函数 所以可以用c2.m_a对比全局函数
    int judecuba(cuba &c2)   // 成员函数,函数重载
    {
        // 好多人分不清m_a是属于c1,还是c2
        // 谁调用就是谁的
        if( (m_a == c2.m_b) &&
            (m_b == c2.m_b) &&
            (m_c == c2.m_c)
           )
            return 1;
        else
            return 0;
        return 0;
    }

};
// 全局函数pk成员函数
// 全局函数
// 只是定义了面向对象的方法 但是没有用
int judecuba3(cuba &c1, cuba &c2)   // 不能直接访问私有成员 通过定义get函数来间接访问
{
    // 特别注意因为此函数是类外函数所以不能用c1.m_a 通过定义get函数来间接访问
    if(     (c1.get_a() == c2.get_a()) &&
            (c1.get_b() == c2.get_b()) &&
            (c1.get_c() == c2.get_c())
      )
        return 1;
    else
        return 0;
}
// 全局函数调用方法
int main()
{
    cuba c1, c2;
    c1.set_abc(1, 2, 3);
    c2.set_abc(1, 2, 4);
     if ( judecuba3(c1, c2) )
    {
        cout << "c1 == c2" << endl;
    }
    else
        cout << "c1 != c2" << endl;

    return 0;
}
// 成员函数调用方法
int main2()
{
    cuba c1, c2;
    c1.set_abc(1, 2, 3);
    c2.set_abc(1, 2, 4);
    // 判断立方体是否相等 通过调用类的成员函数
    int judge = c1.judecuba(c2); // 这种比较好
    if (judge)
    {
        cout << "c1 == c2" << endl;
    }
    else
        cout << "c1 != c2" << endl;

    //冗余 c1
    if ( c1.judecuba(c1, c2) )   // c1 太多了
    {
        cout << "c1 == c2" << endl;
    }
    else
        cout << "c1 != c2" << endl;


    if ( judecuba3(c1, c2) )
    {
        cout << "c1 == c2" << endl;
    }
    else
        cout << "c1 != c2" << endl;


        return 0;
}
// 求面积
int main1()  // 求立方体的体积和面积
{
    cuba c1, c2;
    c1.set_abc(1, 2, 3);
    cout << "s = " <<c1.get_s()<< endl;
    cout << "v = " << c1.get_v()<< endl;

    return 0;
}

点与圆的关系

#include <iostream>
using namespace std;

class point
{
private:
    int x1;
    int y1;
public:
    void setpoint(int x, int y)
    {
        x1 = x;
        y1 = y;
    }
    int get_x()   // 接口函数 用来访问私有成员
    {
        return x1;
    }
    int get_y()
    {
        return y1;
    }

};

class Circle
{
private:
    int x0;
    int y0;
    int r;

public:
    void setcircle(int x, int y, int r1)
    {
        x0 = x;
        y0 = y;
        r = r1;
    }
public:
    int jude(point &p1)
    {
        // 点的成员是私有的不能让jude函数(类外部函数)访问,所以用一个接口函数来访问
        // 此函数使用c1调用的 而且jude还是圆类的内部函数,可以直接访问但是不能加c1.x0
        int d = (p1.get_x() - x0) * (p1.get_x() - x0) +
                (p1.get_y() - y0) * (p1.get_y() - y0);
                cout << "d^2 = " << d*d << endl;
                cout << "r = " << r << endl;

        if (d <= r*r)
        {
            return 1;  // 在圆内
        }
        else
            return 0;  // 在圆外
    }

};

int main()
{
    Circle c1;
    point p1;

    c1.setcircle(1,1,2);
    p1.setpoint(2,2);

    int tag = c1.jude(p1);
    if (tag == 1)
    {
        cout << "点在圆内" << endl;
    }
    else
        cout <<"点在圆外" << endl;
    return 0;
}

因为初学C++ 有些的不对的请指教 构造函数就不写了(目前学得不好怕误导大家)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值