最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++之Set/Get使用及說明

 更新時間:2025年10月22日 14:55:58   作者:tianzhiyi1989sq  
文章介紹了C++中私有字段取值和賦值的幾種常用方式:若字段多且無特殊操作,可設(shè)為public;如需統(tǒng)一校驗(yàn),可用宏定義Get/Set函數(shù);如需獨(dú)立操作則單獨(dú)實(shí)現(xiàn)Get/Set函數(shù)

C++——get/set

C++中的私有字段取值、賦值時,一般是提供Get,Set函數(shù)來實(shí)現(xiàn),具體使用可分以下場景:

1.大量私有字段,不需校驗(yàn)或加鎖等額外操作的

僅對該字段做單純的取值、賦值操作,建議直接將字段定義為public;

class Test
{
    public:
        int age;
        std::string name;
        int sex;
        std::string intrest;
        double height;
        double weight;
}

2.大量私有字段,需要對字段進(jìn)行判空等統(tǒng)一操作時

可將Get、Set定義成宏函數(shù),減少代碼量(至于使用宏函數(shù)后,代碼調(diào)試不便,這個問題我覺得影響不大,變量屬于類對象的屬性,可直接監(jiān)控對象進(jìn)行調(diào)試)

// 普通變量的宏定義
#define PropertyBuilder(type, name)\
    public:\
          inline void Set##name(const type& para){\
              m_##name = para;
          }
          inline type& Get##name(){\
              return m_##name;
          }
    private:\
          type m_##name;
          
// 指針變量的宏定義
#define PointerPropertyBuilder(type, name)\
    public:\
          inline void Set##name(const type* para){\
              // para is nullptr
              m_##name = para;
          }
          inline type& Get##name(){\
              // IsValid
              return m_##name;
          }
    private:\
          type* m_##name;

3.少量私有字段,需要對字段進(jìn)行獨(dú)立的操作

如加鎖等,則定義Get/Set函數(shù),在cpp文件中具體實(shí)現(xiàn)

class Test
{
public:
   void SetResource(const char* v);
   char* GetResource();
    private:
         char* m_resource;
}
?
void Test::SetResource(const int v)
{
    m_resource = v;
}
?
char* Test::GetResource()
{
    // lock
    // other operation
    return m_resource;
}

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++11?constexpr使用詳解

    C++11?constexpr使用詳解

    constexpr是一種比const?更嚴(yán)格的束縛,?它修飾的表達(dá)式本身在編譯期間可知,?并且編譯器會盡可能的?evaluate?at?compile?time,本文重點(diǎn)給大家介紹C++11?constexpr使用,需要的朋友可以參考下
    2021-12-12
  • VisualStudio2022提交git代碼的方法實(shí)現(xiàn)

    VisualStudio2022提交git代碼的方法實(shí)現(xiàn)

    本文主要介紹了VisualStudio2022提交git代碼的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C++實(shí)現(xiàn)連連看消除算法

    C++實(shí)現(xiàn)連連看消除算法

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)連連看消除算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 淺談C++重載、重寫、重定義

    淺談C++重載、重寫、重定義

    下面小編就為大家?guī)硪黄獪\談C++重載、重寫、重定義。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • C++日志庫log4cplus的使用詳解

    C++日志庫log4cplus的使用詳解

    C++實(shí)現(xiàn)的log4cplus日志庫是一種易于使用的C?++日志記錄API,可提供線程安全,靈活且任意粒度的日志管理和配置控制。這篇文章就來和大家講講log4cplus的使用吧
    2023-03-03
  • C語言多功能動態(tài)通訊錄實(shí)現(xiàn)示例

    C語言多功能動態(tài)通訊錄實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了C語言多功能動態(tài)通訊錄實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • C語言實(shí)現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法

    C語言實(shí)現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法

    這篇文章主要介紹了C語言實(shí)現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法,涉及C語言基于libmysql.lib實(shí)現(xiàn)訪問MySQL數(shù)據(jù)庫的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • C語言中操作sqlserver數(shù)據(jù)庫案例教程

    C語言中操作sqlserver數(shù)據(jù)庫案例教程

    這篇文章主要介紹了C語言中操作sqlserver數(shù)據(jù)庫案例教程,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)串(堆分配存儲表示法)實(shí)例詳解

    C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)串(堆分配存儲表示法)實(shí)例詳解

    這篇文章主要介紹了C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)串(堆分配存儲表示法)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • OpenCV圖像分割中的分水嶺算法原理與應(yīng)用詳解

    OpenCV圖像分割中的分水嶺算法原理與應(yīng)用詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV圖像分割中的分水嶺算法原理與應(yīng)用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論

广河县| 巴南区| 晋宁县| 大安市| 文登市| 青田县| 察哈| 新丰县| 轮台县| 盐亭县| 竹北市| 邢台市| 岫岩| 乡宁县| 宁晋县| 崇仁县| 师宗县| 扶沟县| 镇平县| 抚松县| 安庆市| 临潭县| 昆山市| 龙川县| 神木县| 威海市| 思南县| 金秀| 长泰县| 安岳县| 昌江| 闽清县| 兴城市| 平顺县| 银川市| 鄯善县| 安远县| 曲靖市| 玉林市| 贵溪市| 西青区|