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

C++類的返回值是*this的成員函數(shù)問題

 更新時(shí)間:2022年11月25日 08:36:18   作者:棉猴  
這篇文章主要介紹了C++類的返回值是*this的成員函數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C++類返回值是*this成員函數(shù)

當(dāng)C++類的成員函數(shù)其返回值是*this時(shí),表示返回值是調(diào)用該成員函數(shù)的變量的引用。

例如:

class A
{
public:
? A& func1() {
? return *this;
? }
? int i{0};
}

此時(shí),類A的成員函數(shù)func1的返回值是*this,該成員函數(shù)的返回值類型是A&。

1 返回值是左值

func1()函數(shù)的返回值是類型A的引用,該返回值是左值。也就是說,此時(shí)返回的是調(diào)用該函數(shù)的對象本身,通過該返回值可以調(diào)用該對象的其他成員函數(shù)或者對其他成員變量進(jìn)行賦值。

A a;
a.func1().i = 10;

此時(shí)類A的對象a的成員變量i的值是10。

2 const成員函數(shù)的返回值

在const成員函數(shù)中,不能修改對象的成員變量。當(dāng)const成員函數(shù)返回值是*this時(shí),表示返回的是一個(gè)const對象的引用。

const A& func2()const {
? return *this;
}

其中,func2()函數(shù)是類A的const成員函數(shù),該函數(shù)的返回值類型是const A&,而不是A&。此時(shí),如果通過func2()函數(shù)的返回值修改對象的成員變量

a.func2().i = 100;

此時(shí)的報(bào)錯(cuò)信息為“error C3892: “a”: 不能給常量賦值”。

對C++類成員返回語句return *this的理解

經(jīng)常會(huì)在類似 copy-assignment 的成員函數(shù)看到返回語句 return *this ,這類函數(shù)通常返回類型是所屬類的引用。

類成員函數(shù)的隱式指針 class *this const 經(jīng)過 *this的解引用后成為此對象本身。此時(shí)若成員函數(shù)返回類型是 class ,那么返回的將是 this 指向的對象實(shí)體的拷貝;

若返回類型是 class& ,那么將返回一個(gè)綁定在 this 指向的對象實(shí)體上的引用。

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

相關(guān)文章

  • 利用C/C++二進(jìn)制讀寫png文件的方法示例

    利用C/C++二進(jìn)制讀寫png文件的方法示例

    最近在做項(xiàng)目的時(shí)候遇到了這個(gè)問題,所以想著總結(jié)下,方法自己和有需要的朋友,下面這篇文章主要介紹了利用C/C++二進(jìn)制讀寫png文件的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Qt 信號自定義槽函數(shù)的實(shí)現(xiàn)

    Qt 信號自定義槽函數(shù)的實(shí)現(xiàn)

    Qt中實(shí)現(xiàn)自定義信號與槽函數(shù),信號用于發(fā)送并觸發(fā)槽函數(shù),槽函數(shù)則是具體的功能實(shí)現(xiàn),本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2021-11-11
  • C#委托所蘊(yùn)含的函數(shù)指針概念詳細(xì)解析

    C#委托所蘊(yùn)含的函數(shù)指針概念詳細(xì)解析

    C#中用委托這種概念實(shí)現(xiàn)了函數(shù)指針技術(shù)而已,另外.ent提供額外的安全性,當(dāng)然也損失了靈活性
    2013-09-09
  • 在C語言中比較兩個(gè)字符串是否相等的方法

    在C語言中比較兩個(gè)字符串是否相等的方法

    這篇文章主要介紹了在C語言中比較兩個(gè)字符串是否相等的方法,分別介紹了strcmp()函數(shù)和strcasecmp()函數(shù),注意功能區(qū)分,需要的朋友可以參考下
    2015-08-08
  • C++實(shí)現(xiàn)團(tuán)購訂單管理系統(tǒng)

    C++實(shí)現(xiàn)團(tuán)購訂單管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)團(tuán)購訂單管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-12-12
  • C++類模板實(shí)戰(zhàn)之vector容器的實(shí)現(xiàn)

    C++類模板實(shí)戰(zhàn)之vector容器的實(shí)現(xiàn)

    本文我們將做一個(gè)類模板實(shí)戰(zhàn)-手寫精簡版vector容器。讓我們自己封裝一個(gè)數(shù)組類,可以適應(yīng)基本數(shù)據(jù)類型和自定義數(shù)據(jù)類型,感興趣的可以了解一下
    2022-07-07
  • C++中關(guān)于set刪除的一些坑

    C++中關(guān)于set刪除的一些坑

    這篇文章主要介紹了C++中關(guān)于set刪除的一些坑,因?yàn)檫@個(gè)問題浪費(fèi)了很多的時(shí)間,所以想著分享出來給大家,方便同樣遇到這個(gè)問題的朋友們,有需要的朋友們下面來一起看看吧。
    2017-02-02
  • 數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例

    數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • C++深入分析講解函數(shù)與重載知識點(diǎn)

    C++深入分析講解函數(shù)與重載知識點(diǎn)

    C++?允許多個(gè)函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function?Overloading),借助重載,一個(gè)函數(shù)名可以有多種用途
    2022-06-06
  • C語言編程PAT乙級學(xué)習(xí)筆記示例分享

    C語言編程PAT乙級學(xué)習(xí)筆記示例分享

    這篇文章主要為大家介紹了C語言編程PAT乙級學(xué)習(xí)筆記實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評論

邹城市| 宁城县| 怀远县| 吐鲁番市| 通渭县| 阜城县| 重庆市| 普兰店市| 新泰市| 德安县| 武乡县| 景泰县| 安岳县| 绍兴县| 石棉县| 遂平县| 吉隆县| 台州市| 苍梧县| 长子县| 新野县| 宜章县| 西畴县| 房山区| 龙江县| 长岛县| 潜山县| 晋宁县| 和田市| 库尔勒市| 历史| 本溪| 常山县| 鹤岗市| 两当县| 南澳县| 昌邑市| 托克逊县| 东乡| 电白县| 宁陵县|