亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

該怎么理解啊,一步一步來,index類型別名把各成員名聲明是screen的類成員?

該怎么理解啊,一步一步來,index類型別名把各成員名聲明是screen的類成員?

C++ C
瀟湘沐 2022-10-19 15:15:15
class screen{public:typedef std::string::size_type index;char get() const{return contents[cursor]; }char get() (index hg,index wi) const;private:std::string contents;index cursor;index height width;};char get() const{return contents[cursor]; }創建一個字符串類型的get函數,默認形參表為空,函數體返回一個contents(內容)的什么是成員嘛?cursor(光標)
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

typedef 的目的是把index定義成std::string::size_type 的別名,這里應該就是無符號整型
兩個get函數首先解釋下const的意思,表明該函數不會改變任何成員變量的值
這兩個函數的返回值都是char型 只是參數不同,實現不同
第一個函數沒有參數,返回string constents中curcor所對應的字符,算是inline函數
第二個函數有兩個參數,但沒有實現,應該在對應的cpp文件中有具體的實現,這里只是一個函數聲明

查看完整回答
反對 回復 2022-10-24
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

幫你整理下?。?br/>class screen{
public:
typedef std::string::size_type index; //這里把index定義為std::string::size_type的類型(string的字符長度的類型,通常應該是int型)
char get() const{return contents[cursor];} //這里定義了一個函數,該函數沒有參數,返回值是一個char型,并且是不能被外部修改的值(用const修飾了)。 函數體里面
return contents[cursor]; //contents是一個string類型的, cursor是一個index型的,所以
contents[cursor]就是指字符串contents中處在cursor位置上的字符。

char get() (index hg, index wi) const; //我猜想應該不是這樣的吧,而是
char get(index hg, index wi) const; //這個函數與上面的函數構成重載,什么是函數的重載呢?即函數的參數個數,參數類型,參數順序等不同,就能夠長重載。
函數重載的意義:當你調用函數時,對同一個函數名,你給的參數不同那么調用的函數也就不同。


查看完整回答
反對 回復 2022-10-24
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

char get() const{return contents[cursor]; }
char get() (index hg,index wi) const;這兩個函數為重載函數,函數名相同而形參個數或類型不同的函數就是重載函數,從screen類的定義可知,contents和cursor都為私有成員,其變量類型不同,contents是std::string類型的變量,應該在其他文件中有定義其類型,而cursor是index
類型的變量,在public下的第一行已經定義過,是std::string::size_type 類型的。
對于兩個重載函數的區別,是在類的實現過程中編譯器自動識別的,根據實現文件中所提供的對象是否帶參數,或者參數的個數不同加以區別。

查看完整回答
反對 回復 2022-10-24
  • 3 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號