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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM