zoukankan      html  css  js  c++  java
  • C++(成员属性设置为私有)

    成员属性设置为私有

    • 优点1: 将所有成员属性设置为私有,可以自己控制读写权限
    • 优点2: 对于写权限,我们可以检测数据的有效性

    示例:

    #include <iostream>
    #include <string>
    using namespace std;
    
    class Person{
    public:
          //姓名设置可读可写
          void setName(string name)
          {
                m_Name=name;
          }
    
          string getName()
          {
                return m_Name;
          }
    
          //获取年龄
          int getAge()
          {
                return m_Age;
          }
    
          //设置年龄
          void setAge(int age)
          {
                if(age<0 || age>10)
                {
                      cout<<"年龄不符"<<endl;
                      return;
                }
                m_Age=age;
          }
    
          //情人设置为只写
          void setLover(string lover)
          {
                m_Lover=lover;
          }
    private:
          string m_Name; //可读可写, 姓名
          int m_Age;    //只读, 年龄
          string m_Lover; //只写, 情人
    
    };
    
    int main() {
    
    	Person p;
    	//姓名设置
    	p.setName("张三");
    	cout << "姓名: " << p.getName() << endl;
    
    	//年龄设置
    	p.setAge(50);
    	cout << "年龄: " << p.getAge() << endl;
    
    	//情人设置
    	p.setLover("苍井");
    	//cout << "情人: " << p.m_Lover << endl;  //只写属性,不可以读取
    
    	system("pause");
    
    	return 0;
    }
    
    

    练习案例1:设计立方体类

    
    #include <iostream>
    using namespace std;
    
    class Cube
    {
    public:
          //设置长
          void setL(int l)
          {
                m_L=l;
          }
          //获取长
          int getL(void)
          {
                return m_L;
          }
    
          //设置宽
          void setW(int w)
          {
                m_W=w;
          }
          //获取宽
          int getW(void)
          {
                return m_W;
          }
    
          //设置高
          void setH(int h)
          {
                m_H=h;
          }
          //获取高
          int getH(void)
          {
                return m_H;
          }
    
          int CalSquare()
          {
                return 2*m_L*m_W+2*m_L*m_H+2*m_W*m_H;
          }
    
          int CalVol()
          {
                return m_L*m_W*m_H;
          }
    
          bool IsSameByclass(Cube &c)
          {
                if(m_L==c.getL() && m_W==c.getW() && m_H==c.getH())
                {
                      return true;
                }
                return false;
          }
    private:
          int m_L;  //长
          int m_W;  //宽
          int m_H;  //高
    };
    
    bool IsSame(Cube &c1,Cube &c2)
    {
           if(c1.getL()==c2.getL() && c1.getW()==c2.getW() && c1.getH()==c2.getH())
           {
                 return true;
           }
           return false;
    }
    
    int main(void)
    {
          Cube c1;
          c1.setL(10);
          c1.setW(10);
          c1.setH(10);
    
          cout<<"立方体的面积:"<<c1.CalSquare()<<endl;
          cout<<"立方体的体积:"<<c1.CalVol()<<endl;
    
          Cube c2;
          c2.setL(10);
          c2.setW(10);
          c2.setH(10);
    
          
          if(IsSame(c1,c2))
          {
                cout<<"全局函数 立方体相等"<<endl;
          }else
          {
                 cout<<"全局函数 立方体不相等"<<endl;
          }
    
           if(c1.IsSameByclass(c2))
          {
                cout<<"成员函数 立方体相等"<<endl;
          }else
          {
                 cout<<"成员函数 立方体不相等"<<endl;
          }
               
          return 0;
    }
    
    
  • 相关阅读:
    Jmeter跨线程组传参
    HTTP2 Sampler for JMeter
    全功能Python测试框架:pytest
    pytest + allure + jenkins 生成漂亮的测试报告
    C/C++ 多线程注意事项
    ASIO
    cocos2D-X 线程注意事项
    C/C++ C++ 11 兰姆达
    Android Studio 打包生成正式apk(XXX-release.apk)的两种方式
    C/C++ C++ 11 std::move()
  • 原文地址:https://www.cnblogs.com/xuelanga000/p/13593851.html
Copyright © 2011-2022 走看看