偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

EasyC++,This指針

開發(fā) 后端
還是Stock股票這個類,假設(shè)我們要實現(xiàn)一個方法,比較一下當(dāng)前股票和傳入的股票, 返回價格高的那個股票。在我們實現(xiàn)的時候,會遇到一點問題。

[[439937]]

大家好,我是梁唐。

this指針

還是Stock股票這個類,假設(shè)我們要實現(xiàn)一個方法,比較一下當(dāng)前股票和傳入的股票, 返回價格高的那個股票。在我們實現(xiàn)的時候,會遇到一點問題。

  1. const Stock & Stock::topVal(const Stock &s) const { 
  2.     if (s.total_val > total_val) { 
  3.         return s; 
  4.     }else { 
  5.         return ????; 
  6.     } 

這段代碼當(dāng)中有一些問題,我們一個一個來說。

首先說函數(shù)簽名,前面都沒有問題,問題出現(xiàn)在簽名末尾的const。這是我們第一次在函數(shù)的末尾看到const,這個用法只能用在類或結(jié)構(gòu)體的成員函數(shù)中,而不能用在普通函數(shù)里。

它表示這個函數(shù)不會修改任何成員變量的值,末尾加上const的函數(shù)稱為常量成員函數(shù)。

常量函數(shù)有一些特殊的性質(zhì):

  • 能被任何函數(shù)調(diào)用,只能調(diào)用常量函數(shù)
  • 能被任何對象調(diào)用,但const對象只能調(diào)用const函數(shù)

性質(zhì)不是非常復(fù)雜,但有些像是繞口令,需要從const常量的性質(zhì)角度出發(fā)理解一下。

代碼當(dāng)中第二個問題就是一堆問號的地方,這里我們想要return當(dāng)前對象,但是我們不知道如何表示。為了解決這個問題,C++當(dāng)中創(chuàng)建了一個特殊的指針叫做this,它用來指向調(diào)用成員函數(shù)的對象,也就是當(dāng)前對象。

所以有了this之后,這段代碼可以寫成:

  1. const Stock & Stock::topVal(const Stock &s) const { 
  2.     if (s.total_val > total_val) { 
  3.         return s; 
  4.     }else { 
  5.         return *this 
  6.     } 

 

另外,this指針也可以拿來訪問當(dāng)前對象當(dāng)中的成員變量,比如我們想要訪問當(dāng)前的total_val,可以寫成this->total_val,我們直接用total_val本質(zhì)上是一樣的,是編譯器替我們做了優(yōu)化。

 

責(zé)任編輯:武曉燕 來源: Coder梁
相關(guān)推薦

2021-11-09 10:38:16

C++Const指針

2021-11-10 10:48:36

C++函數(shù)指針

2021-10-27 16:27:20

C++指針操控

2021-12-29 20:31:40

C++多態(tài)指針

2021-10-29 09:44:50

C++指針變量

2021-11-26 00:03:20

C++編譯常量

2021-12-09 10:56:50

函數(shù)C++原型

2021-12-08 10:43:09

C++實現(xiàn)

2021-12-10 10:45:36

C++函數(shù)Stock

2021-10-26 00:19:51

C++結(jié)構(gòu)體存儲

2021-12-30 14:58:58

C++函數(shù)動態(tài)

2021-12-11 19:02:03

函數(shù)C++對象

2021-11-27 11:50:09

C++靜態(tài)持續(xù)

2021-10-26 15:36:17

C++枚舉值類型

2021-12-05 18:20:42

C++空間特性

2021-12-15 10:25:57

C++運(yùn)算符重載

2022-01-04 16:35:42

C++Protected關(guān)鍵字

2021-10-21 18:52:00

C++數(shù)組存儲

2021-12-14 10:12:58

C++抽象數(shù)據(jù)

2021-12-26 00:08:35

C++初始化列表
點贊
收藏

51CTO技術(shù)棧公眾號