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

C++ 常量成員常量返回值詳解

 更新時(shí)間:2017年06月02日 23:28:48   作者:Jason-Cen  
這篇文章主要介紹了C++ 常量成員常量返回值詳解,需要的朋友可以參考下

總結(jié):
1.常量數(shù)據(jù)成員,形式:const Type m_tData;
1)常量數(shù)據(jù)成員,需要在構(gòu)造函數(shù)列表中給出,構(gòu)造函數(shù)中可以用常量賦值,也可以實(shí)例化的時(shí)候賦值。
2)賦值函數(shù)中不能賦值,起到保護(hù)常量數(shù)據(jù)成員的作用,和友元作用相反。

2.常量成員函數(shù),形式:type funname(type1 arg1,type2 arg2,...) const
1)常量成員函數(shù),不能修改類數(shù)據(jù)成員,不能調(diào)用非常量函數(shù)。
2)常量成員函數(shù)的作用,可以有效的將類的函數(shù)分為可以修改類的函數(shù),和不能修改類的函數(shù);以后應(yīng)該善于使用常量成員函數(shù)。

3.返回常量的函數(shù),可以是常量指針,指針常量,常量,形式:
const type* funcname(type1 arg1,type2 arg2, ..)
type* const funcname(type1 arg1,type2 arg2, ..)
const funcname(type1 arg1,type2 arg2, ..)
他們的返回類型對(duì)于使用不是重要的,重要的是賦給的對(duì)象的類型決定了后續(xù)能夠進(jìn)行的操作。
常量指針和指針常量都可以賦值給常量指針對(duì)象,常量指針對(duì)象可以進(jìn)行p++操作,不能進(jìn)行*p操作。
常量指針和指針常量都可以賦值給指針常量,但是指針常量只能進(jìn)行*p操作,不能進(jìn)行p++操作。
普通類型的返回常量的函數(shù),目的是為了讓成員函數(shù)返回值之間不能進(jìn)行運(yùn)算,防止產(chǎn)生丑陋的代碼,
返回值是常量的函數(shù),說(shuō)明該類內(nèi)的這個(gè)值是外部使用者不能輕易改變的, 可以讓類的聲明的含義更加貼切,更加易于理解。

#include "stdafx.h"
#include <iostream>
using namespace std;
class CTest
{
public:
  CTest(int nid, int nlimit):m_cntLimit(nlimit)
  {
    //m_cntLimit = nlimit;// 常量成員必須在構(gòu)造函數(shù)列表在中給出
    m_nId = nid;
  }
  ~CTest(){};

  int GetID() const
  {
    //m_nId++;常量成員函數(shù)不能修改對(duì)象
    //ClientGetObj();常量成員函數(shù)不能調(diào)用非常量成員函數(shù)
    return m_nId;
  }

  CTest operator =(const CTest &b)
  {
    this->m_nId = b.m_nId;
    //this->m_cntLimit = b.m_cntLimit;// 常量數(shù)據(jù)成員不能拷貝
    return (*this);
  }

  int ClientGetID()
  {
    return GetID();
  }

  CTest* const GetObj()
  {
    return this;
  }

  CTest* ClientGetObj()
  {
    return this;
  }
  const int GetID()
  {
    return m_nId;
  }

  void Print()
  {
    cout<<"m_nId:"<<m_nId<<", const m_cntLimit"<<m_cntLimit<<endl;
  }

  void PrintCnt() const
  {
    cout<<"m_nId:"<<m_nId<<", const m_cntLimit"<<m_cntLimit<<endl;
  }

private:
  int m_nId;
  const int m_cntLimit;
};
void main()
{
  CTest Obj1(1, 1000);
  CTest Obj2(2, 2000);
  CTest* pObj = Obj1.ClientGetObj();
  pObj->Print();
  CTest objTemp = *(Obj1.ClientGetObj());
  *pObj = *(Obj2.ClientGetObj());
  pObj->Print();
  // reset
  *pObj = objTemp;

  cout<<"-------------const display---------------"<<endl;
   /*const */CTest* const pCntObj = Obj1.GetObj();//常量指針和指針常量都可以賦值給常量指針
  pCntObj->PrintCnt();
  *pCntObj = *(Obj2.GetObj());
  pCntObj->PrintCnt();
  /*const */int nid = pCntObj->GetID();// 常量返回值可以賦值給變量
  nid++;
  cout<<"new nid is:"<<nid<<endl;
  //*pCntObj = *(Obj1.GetObj());// 常量指針對(duì)象,不能進(jìn)行*p操作,可以進(jìn)行p++操作
  while(1);
}

相關(guān)文章

  • 封裝常用正則表達(dá)式的用法

    封裝常用正則表達(dá)式的用法

    這篇文章主要介紹了使用C++封裝常用正則表達(dá)式的用法,方便以后直接使用,最后還給出了測(cè)試代碼,大家可運(yùn)行測(cè)試使用
    2014-03-03
  • c/c++中struct定義、聲明、對(duì)齊方式解析

    c/c++中struct定義、聲明、對(duì)齊方式解析

    這篇文章通過(guò)C/C++的兩種聲明方式開(kāi)始,給大家詳細(xì)分析了/c+中struct定義、聲明、對(duì)齊方式,對(duì)此有興趣的朋友可以參考學(xué)習(xí)下。
    2018-03-03
  • Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實(shí)例

    Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實(shí)例

    這篇文章主要介紹了Cocos2d-x保存用戶游戲數(shù)據(jù)CCUserDefault類使用實(shí)例,需要的朋友可以參考下
    2014-09-09
  • C++中類模板的應(yīng)用你了解多少

    C++中類模板的應(yīng)用你了解多少

    這篇文章主要為大家詳細(xì)介紹了C++中類模板的應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C++中幾種將整數(shù)轉(zhuǎn)換成二進(jìn)制輸出的方法總結(jié)

    C++中幾種將整數(shù)轉(zhuǎn)換成二進(jìn)制輸出的方法總結(jié)

    下面小編就為大家?guī)?lái)一篇C++中幾種將整數(shù)轉(zhuǎn)換成二進(jìn)制輸出的方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • c++算法進(jìn)階刪除有序鏈表中的重復(fù)元素

    c++算法進(jìn)階刪除有序鏈表中的重復(fù)元素

    這篇文章主要為大家介紹了c++算法進(jìn)階刪除有序鏈表中的重復(fù)元素示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • C語(yǔ)言入門篇--sizeof與strlen基礎(chǔ)理論

    C語(yǔ)言入門篇--sizeof與strlen基礎(chǔ)理論

    本篇文章是c語(yǔ)言基礎(chǔ)篇,主要為大家介紹了C語(yǔ)言的sizeof與strlen的基本理論知識(shí),希望可以幫助大家快速入門c語(yǔ)言的世界,更好的理解c語(yǔ)言
    2021-08-08
  • C語(yǔ)言通過(guò)深度優(yōu)先搜索來(lái)解電梯問(wèn)題和N皇后問(wèn)題的示例

    C語(yǔ)言通過(guò)深度優(yōu)先搜索來(lái)解電梯問(wèn)題和N皇后問(wèn)題的示例

    深度優(yōu)先搜索即是對(duì)一個(gè)新發(fā)現(xiàn)的節(jié)點(diǎn)上如果還關(guān)聯(lián)未探測(cè)到的邊,就沿此邊探測(cè)下去,直到發(fā)現(xiàn)從原點(diǎn)可達(dá)的所有點(diǎn)為止,這里我們就來(lái)展示C語(yǔ)言通過(guò)深度優(yōu)先搜索來(lái)解電梯問(wèn)題和N皇后問(wèn)題的示例
    2016-06-06
  • C++選擇排序算法實(shí)例詳解

    C++選擇排序算法實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了C++選擇排序算法實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • C語(yǔ)言實(shí)現(xiàn)數(shù)組轉(zhuǎn)置的代碼詳解

    C語(yǔ)言實(shí)現(xiàn)數(shù)組轉(zhuǎn)置的代碼詳解

    在現(xiàn)代計(jì)算中,數(shù)組是最基礎(chǔ)且最常用的數(shù)據(jù)結(jié)構(gòu)之一,無(wú)論是對(duì)圖像像素進(jìn)行旋轉(zhuǎn),還是對(duì)大規(guī)模數(shù)值數(shù)據(jù)做格式轉(zhuǎn)換,都離不開(kāi)“轉(zhuǎn)置(Transpose)”操作,所以本文將詳細(xì)介紹C語(yǔ)言實(shí)現(xiàn)數(shù)組轉(zhuǎn)置的方法,需要的朋友可以參考下
    2025-05-05

最新評(píng)論

柳州市| 合肥市| 西畴县| 永川市| 高密市| 都兰县| 兴文县| 南溪县| 平塘县| 大关县| 贺兰县| 溆浦县| 凤阳县| 黑龙江省| 大英县| 望都县| 合江县| 樟树市| 麟游县| 德清县| 神农架林区| 百色市| 宜君县| 深水埗区| 郴州市| 汝州市| 阆中市| 双桥区| 仁化县| 玉龙| 阿荣旗| 绥德县| 马边| 盐山县| 吉木萨尔县| 咸宁市| 福海县| 安顺市| 怀来县| 潮安县| 东平县|