初学类

来源:互联网 发布:微信淘宝刷 g是真的吗 编辑:程序博客网 时间:2024/05/19 00:52

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

//案例一 设计立方体类(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++ 有些的不对的请指教 构造函数就不写了(目前学得不好怕误导大家)