C 學習Proxy Class之筆記2

2021-03-31 08:56:28 字數 1365 閱讀 7149

依然是對more effective c++條款30-proxy class的學習筆記。

#include

using namespace std;

template

class array

proxy& operator = (const t& rhs)

operator t() const

friend ostream& operator<< (ostream& os, const proxy& rhs)

private:

array& thearray;

int itemindex;

};const proxy operator(int index) const;

proxy operator(int index);

friend class proxy;

array(int dim);

~array();

private:

t* array;

};template

array

::array(int dim)

template

array

::~array()

template

array

::proxy array

::operator(int index)

template

const array

::proxy array

::operator (int index) const

class rational

;rational::rational(int numerator, int denominator)

: num(numerator), deno(denominator)

int rational::numerator() const

int rational::denominator() const

rational& rational::operator = (const rational& rhs)

ostream& operator<<(ostream& os, const rational& rhs)

int main()

之所以出現錯誤的原因是:operator 返回乙個**物件而不是實際的rational物件。但成員函式numerator()和denominator()只存在於rational物件上,而不是其**物件。

但是我想,為什麼編譯器在這裡不呼叫隱式轉換函式

operator t() const

呢?如果呼叫了,那麼錯誤也就應該不會出現了

乙個簡單的解決辦法是

int main()

C Primer Chapter One學習筆記

筆記 1.流 從io裝置上讀入或寫出的字串行,用來說明字元隨時間順序生成或消耗。2.輸入輸出符可連用原因 operator 或operator 返回stream物件。3.要測試程式那個語句出錯,使用cout 4.新建乙個內建型別,如int i 0 最好先初始化,不然用到的時候沒初始化會產生奇怪的錯誤...

BroadcastReceiver學習筆記

需要注意 的是,不要在 onreceive 方法中新增過多的邏輯或者進行任何的耗時操作,因為在廣播接收 器中是不允許開啟執行緒的,當 onreceive 方法執行了較長時間而沒有結束時,程式就會報錯。有序broadcast,sendorderedbroadcast intent,null abort...

CDISC SDTM SE domain 學習筆記

整理翻譯自 sdtm ig 3.2 www.cdisc.org sdtm se subject elements 鞏固每個subject的epochs和elements的起止時間點.se對於有多個 時期的試驗有著重要的用處 如crossover試驗 se包含乙個subject從乙個element進入...