自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

EasyC++,類(lèi)的實(shí)現(xiàn)

開(kāi)發(fā) 后端
我們?cè)倩剡^(guò)頭來(lái)看一下Stock這個(gè)類(lèi)的定義,在類(lèi)的定義當(dāng)中,有一個(gè)叫做set_tot的函數(shù)。我們直接在類(lèi)當(dāng)中實(shí)現(xiàn)了邏輯。雖然同樣是成員函數(shù),但是在類(lèi)當(dāng)中直接實(shí)現(xiàn)的函數(shù)是有所區(qū)別的。在類(lèi)聲明當(dāng)中實(shí)現(xiàn)的函數(shù),會(huì)被視為是內(nèi)聯(lián)函數(shù)。

 [[439289]]

大家好,我是梁唐。

想要追求更好閱讀體驗(yàn)的同學(xué),可以點(diǎn)擊「閱讀原文」訪問(wèn)github倉(cāng)庫(kù)。

類(lèi)的實(shí)現(xiàn)

當(dāng)我們完成了類(lèi)定義之后, 還需要來(lái)實(shí)現(xiàn)類(lèi)當(dāng)中的函數(shù)。

比如我們?cè)趕tock00.h當(dāng)中定義了一個(gè)類(lèi):

  1. #ifndef STOCK00_H_ 
  2. #define STOCK00_H_ 
  3.  
  4. #include <string> 
  5.  
  6. class Stock { 
  7.     private: 
  8.      std::string company; 
  9.      long shares; 
  10.      double share_val; 
  11.      double total_val; 
  12.      void set_tot() {total_val = shares * share_val;} 
  13.     public
  14.      void accquire(const std::string &co, long n, double pr); 
  15.      void buy(long num, double price); 
  16.      void sell(long num, double price); 
  17.      void update(double price); 
  18.      void show(); 
  19. }; 
  20. #endif 

成員函數(shù)

在這個(gè)定義當(dāng)中,我們只是聲明了函數(shù),并沒(méi)有具體實(shí)現(xiàn)函數(shù)的邏輯。

我們通常會(huì)在同名的cpp文件當(dāng)中實(shí)現(xiàn),實(shí)現(xiàn)的時(shí)候,需要使用作用域解析運(yùn)算符來(lái)表示函數(shù)所屬的類(lèi):

  1. void Stock::update(double price) { 
  2.     ... 

這樣就表明了update函數(shù)所屬Stock這個(gè)類(lèi),這也就意味著我們可以創(chuàng)建屬于其他類(lèi)的同名函數(shù):

  1. void Buffoon::update() { 
  2.     ... 

其次,我們?cè)诔蓡T函數(shù)當(dāng)中,可以訪問(wèn)private限定的成員變量。比如說(shuō)在show函數(shù)當(dāng)中,我們可以這樣實(shí)現(xiàn):

  1. void Stock::show() { 
  2.     std::cout << company << shares << share_val << total_val << endl; 

雖然company,shares都是類(lèi)的私有成員,但在成員方法當(dāng)中,一樣可以正常訪問(wèn)。

再次,我們?cè)诔蓡T方法當(dāng)中調(diào)用另外一個(gè)成員方法,可以不需要解析運(yùn)算符。比如我們要在show函數(shù)內(nèi)調(diào)用update函數(shù),直接使用update()即可,而無(wú)需前面的Stock::。

內(nèi)聯(lián)函數(shù)

我們?cè)倩剡^(guò)頭來(lái)看一下Stock這個(gè)類(lèi)的定義,在類(lèi)的定義當(dāng)中,有一個(gè)叫做set_tot的函數(shù)。我們直接在類(lèi)當(dāng)中實(shí)現(xiàn)了邏輯。雖然同樣是成員函數(shù),但是在類(lèi)當(dāng)中直接實(shí)現(xiàn)的函數(shù)是有所區(qū)別的。在類(lèi)聲明當(dāng)中實(shí)現(xiàn)的函數(shù),會(huì)被視為是內(nèi)聯(lián)函數(shù)。

一般我們會(huì)把一些比較簡(jiǎn)短的函數(shù)在類(lèi)的聲明當(dāng)中直接實(shí)現(xiàn),當(dāng)然我們也可以使用關(guān)鍵字inline,手動(dòng)指定某個(gè)函數(shù)是內(nèi)聯(lián)的。

  1. class Stock { 
  2.     private: 
  3.     void set_tot(); 
  4.     public
  5.     ... 
  6. }; 
  7.  
  8. inline void Stock::set_tot() { 
  9.     total_val = shares * share_val; 

本文轉(zhuǎn)載自微信公眾號(hào)「Coder梁」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Coder梁公眾號(hào)。

 

 

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

2021-12-12 18:13:54

C++This指針

2021-12-29 20:31:40

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

2021-12-09 10:56:50

函數(shù)C++原型

2021-11-26 00:03:20

C++編譯常量

2021-10-26 00:19:51

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

2021-12-10 10:45:36

C++函數(shù)Stock

2021-12-30 14:58:58

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

2021-10-26 15:36:17

C++枚舉值類(lèi)型

2021-11-27 11:50:09

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

2021-11-09 10:38:16

C++Const指針

2021-12-11 19:02:03

函數(shù)C++對(duì)象

2021-10-31 20:24:24

C++for循環(huán)

2021-10-21 18:52:00

C++數(shù)組存儲(chǔ)

2021-11-10 10:48:36

C++函數(shù)指針

2021-12-15 10:25:57

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

2021-12-05 18:20:42

C++空間特性

2022-01-04 16:35:42

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

2021-10-27 16:27:20

C++指針操控

2021-12-16 10:40:11

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

2021-12-26 00:08:35

C++初始化列表
點(diǎn)贊
收藏

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