c++基础学习笔记——04-c++day03

在学习c++基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。

04-c++day03

 

一、类和对象

1、面向对象程序设计案例

练习1:设计立方体类(Cube)

求出立方体的面积( 2*a*b + 2*a*c + 2*b*c )和体积( a * b * c),分别用全局函数和成员函数判断两个立方体是否相等。

  1 #define _CRT_SECURE_NO_WARNINGS
  2 #include<iostream>
  3 using namespace std;
  4 
  5 /*
  6 设计立方体类(Cube),
  7 求出立方体的面积( 2*a*b + 2*a*c + 2*b*c )和体积( a * b * c),
  8 分别用全局函数和成员函数判断两个立方体是否相等。
  9 */
 10 
 11 class Cube
 12 {
 13 public:
 14     
 15     //设置长
 16     void setL(int l)
 17     {
 18         m_L = l;
 19     }
 20     //获取长
 21     int getL()
 22     {
 23         return m_L;
 24     }
 25     //设置宽
 26     void setW(int w)
 27     {
 28         m_W = w;
 29     }
 30     //获取宽
 31     int getW()
 32     {
 33         return m_W;
 34     }
 35     //设置高
 36     void setH(int h)
 37     {
 38         m_H = l;
 39     }
 40     //获取高
 41     int getH()
 42     {
 43         return m_H;
 44     }
 45     
 46     //求立方体的面积
 47     void getCubeS()
 48     {
 49         cout << "立方体的面积:" << 2* m_L * m_W + 2 m_L * m_H + 2 m_W * m_H << endl;
 50     }
 51     //求立方体的体积
 52     void getCubeV()
 53     {
 54         cout << "立方体的体积:" << m_L * m_W * m_H << endl;
 55     }
 56     
 57     //通过成员函数判断是否相等
 58     bool compareCubeByClass(Cube &cub1, Cube &cub2)
 59     {
 60         if(cub1.getL() == cub2.getL() && cub1.getW() == cub2.getW() && cub1.getH() == cub2.getH() )
 61         {
 62             return true;
 63         }
 64         return false;    
 65     }
 66 
 67 private:
 68     int m_L;//长
 69     int m_W;//宽
 70     int m_H;//高
 71 }
 72 
 73 //全局函数判断 两个立方体是否相等
 74 bool compareCube(Cube &cub)
 75 {
 76     bool ret = m_L == cub.getL() && m_W == cub.getW() && m_H == cub.getH();
 77     return ret;
 78 }
 79 
 80 void test01()
 81 {
 82     Cube c1;
 83     c1.setL(10);
 84     c1.setW(10);
 85     c1.setH(10);
 86     
 87     c1.getCubeS();
 88     c1.getCubeV();
 89     
 90     //通过全局函数判断两个立方体是否相等
 91     
 92     Cube c2;
 93     c2.setL(10);
 94     c2.setW(10);
 95     c2.setH(10);
 96     
 97     bool ret = compareCube(c1, c2);
 98     if(ret)
 99     {
100         cout << "c1和c2是相等的!" << endl;
101     }
102     else
103     {
104         cout << "c1和c2是不相等的!" << endl;
105     }
106     
107     //通过成员函数判断是否相等
108     bool ret2 = c1.compareCubeByClass(c2);
109     if(ret2)
110     {
111         cout << "c1和c2是相等的!" << endl;
112     }
113     else
114     {
115         cout << "c1和c2是不相等的!" << endl;
116     }
117 }
118 
119 int main()
120 {
121     test01();
122     
123     system("pause");
124     return EXIT_SUCCESS;
125 }

 为什么const刚刚不能添加?没法保证成员函数里是否修改了成员属性

  1 #define _CRT_SECURE_NO_WARNINGS
  2 #include<iostream>
  3 using namespace std;
  4 
  5 /*
  6 设计立方体类(Cube),
  7 求出立方体的面积( 2*a*b + 2*a*c + 2*b*c )和体积( a * b * c),
  8 分别用全局函数和成员函数判断两个立方体是否相等。
  9 */
 10 
 11 class Cube
 12 {
 13 public:
 14     
 15     //设置长
 16     void setL(int l)
 17     {
 18         m_L = l;
 19     }
 20     //获取长
 21     int getL() const
 22     {
 23         return m_L;
 24     }
 25     //设置宽
 26     void setW(int w)
 27     {
 28         m_W = w;
 29     }
 30     //获取宽
 31     int getW()
 32     {
 33         return m_W;
 34     }
 35     //设置高
 36     void setH(int h)
 37     {
 38         m_H = l;
 39     }
 40     //获取高
 41     int getH()
 42     {
 43         return m_H;
 44     }
 45     
 46     //求立方体的面积
 47     void getCubeS()
 48     {
 49         cout << "立方体的面积:" << 2* m_L * m_W + 2 m_L * m_H + 2 m_W * m_H << endl;
 50     }
 51     //求立方体的体积
 52     void getCubeV()
 53     {
 54         cout << "立方体的体积:" << m_L * m_W * m_H << endl;
 55     }
 56     
 57     //通过成员函数判断是否相等
 58     bool compareCubeByClass(Cube &cub1, Cube &cub2)
 59     {
 60         if(cub1.getL() == cub2.getL() && cub1.getW() == cub2.getW() && cub1.getH() == cub2.getH() )
 61         {
 62             return true;
 63         }
 64         return false;    
 65     }
 66 
 67 private:
 68     int m_L;//长
 69     int m_W;//宽
 70     int m_H;//高
 71 };
 72 
 73 //为什么const刚刚不能添加?没法保证成员函数里是否修改了成员属性
 74 void func(const Cube &cub)
 75 {
 76     cub.getL();
 77 }
 78 
 79 //全局函数判断 两个立方体是否相等
 80 bool compareCube(Cube &cub)
 81 {
 82     bool ret = m_L == cub.getL() && m_W == cub.getW() && m_H == cub.getH();
 83     return ret;
 84 }
 85 
 86 void test01()
 87 {
 88     Cube c1;
 89     c1.setL(10);
 90     c1.setW(10);
 91     c1.setH(10);
 92     
 93     c1.getCubeS();
 94     c1.getCubeV();
 95     
 96     //通过全局函数判断两个立方体是否相等
 97     
 98     Cube c2;
 99     c2.setL(10);
100     c2.setW(10);
101     c2.setH(10);
102     
103     bool ret = compareCube(c1, c2);
104     if(ret)
105     {
106         cout << "c1和c2是相等的!" << endl;
107     }
108     else
109     {
110         cout << "c1和c2是不相等的!" << endl;
111     }
112     
113     //通过成员函数判断是否相等
114     bool ret2 = c1.compareCubeByClass(c2);
115     if(ret2)
116     {
117         cout << "c1和c2是相等的!" << endl;
118     }
119     else
120     {
121         cout << "c1和c2是不相等的!" << endl;
122     }
123 }
124 
125 int main()
126 {
127     test01();
128     
129     system("pause");
130     return EXIT_SUCCESS;
131 }

练习2:点和圆的关系

设计一个圆形类(AdvCircle),和一个点类(Point),计算点和圆的关系。
假如圆心坐标为x0, y0, 半径为r,点的坐标为x1, y1:
1)点在圆上:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) == r*r
2)点在圆内:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) < r*r
3)点在圆外:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) > r*r

 

 

 

 

在学习c++基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值