3 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
typedef 的目的是把index定義成std::string::size_type 的別名,這里應(yīng)該就是無符號(hào)整型
兩個(gè)get函數(shù)首先解釋下const的意思,表明該函數(shù)不會(huì)改變?nèi)魏纬蓡T變量的值
這兩個(gè)函數(shù)的返回值都是char型 只是參數(shù)不同,實(shí)現(xiàn)不同
第一個(gè)函數(shù)沒有參數(shù),返回string constents中curcor所對(duì)應(yīng)的字符,算是inline函數(shù)
第二個(gè)函數(shù)有兩個(gè)參數(shù),但沒有實(shí)現(xiàn),應(yīng)該在對(duì)應(yīng)的cpp文件中有具體的實(shí)現(xiàn),這里只是一個(gè)函數(shù)聲明

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
幫你整理下?。?br/>class screen{
public:
typedef std::string::size_type index; //這里把index定義為std::string::size_type的類型(string的字符長(zhǎng)度的類型,通常應(yīng)該是int型)
char get() const{return contents[cursor];} //這里定義了一個(gè)函數(shù),該函數(shù)沒有參數(shù),返回值是一個(gè)char型,并且是不能被外部修改的值(用const修飾了)。 函數(shù)體里面
return contents[cursor]; //contents是一個(gè)string類型的, cursor是一個(gè)index型的,所以
contents[cursor]就是指字符串contents中處在cursor位置上的字符。
char get() (index hg, index wi) const; //我猜想應(yīng)該不是這樣的吧,而是
char get(index hg, index wi) const; //這個(gè)函數(shù)與上面的函數(shù)構(gòu)成重載,什么是函數(shù)的重載呢?即函數(shù)的參數(shù)個(gè)數(shù),參數(shù)類型,參數(shù)順序等不同,就能夠長(zhǎng)重載。
函數(shù)重載的意義:當(dāng)你調(diào)用函數(shù)時(shí),對(duì)同一個(gè)函數(shù)名,你給的參數(shù)不同那么調(diào)用的函數(shù)也就不同。

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
char get() const{return contents[cursor]; }
char get() (index hg,index wi) const;這兩個(gè)函數(shù)為重載函數(shù),函數(shù)名相同而形參個(gè)數(shù)或類型不同的函數(shù)就是重載函數(shù),從screen類的定義可知,contents和cursor都為私有成員,其變量類型不同,contents是std::string類型的變量,應(yīng)該在其他文件中有定義其類型,而cursor是index
類型的變量,在public下的第一行已經(jīng)定義過,是std::string::size_type 類型的。
對(duì)于兩個(gè)重載函數(shù)的區(qū)別,是在類的實(shí)現(xiàn)過程中編譯器自動(dòng)識(shí)別的,根據(jù)實(shí)現(xiàn)文件中所提供的對(duì)象是否帶參數(shù),或者參數(shù)的個(gè)數(shù)不同加以區(qū)別。
- 3 回答
- 0 關(guān)注
- 146 瀏覽
添加回答
舉報(bào)