1樓:匿名使用者
比如這麼定義:
template
class linkedlist
node& operator ++(int) //前置,返回next節點
};inline node& getfirstnode() //連結串列為空會出錯
private:
node* pfirst;
};不過以上**有個很大的問題,實際上是不能用的,只是為了說明一下。因為返回引用,所以在訪問到最後一個節點的時候會出現訪問違規,因為最後一點的pnext是個null,你對null呼叫*號就會出問題,如果返回node的指標那就沒問題了,但是如果返回指標,你
linkedlist::node* pnode = ....getfirstnode();
(*pnode)++;
這樣才行,看起來很不爽。
如果要向stl的iterator那樣,那前提就是最後的一個節點要特殊處理,stl就有end()這個特殊處理。
2樓:匿名使用者
後面要加一個v,好像並沒有定義啊?
這是函式的形式引數,就好像你定義int fun(int i){}裡面的版i一樣。
2.第一行為什權麼是myvector myvector::operator()而不是myvector::opertator()為什麼要重複一次。
第一個是返回值型別,第二個是類名
3.this 這個句子中的v.x指的是什麼啊?this->x+v.x 這兩個x分別是什麼啊?
this->x指的是當前物件的成員x,v.x指的是引數v的成員x關於運算子過載,可以參考
關於this指標,可以參考
3樓:匿名使用者
plus operator++(plink& p)
plus是型別,plink是p指標的型別
C運算子過載是什麼意思C中運算子過載到底有什麼何意義?
所謂過載,就是重新賦予新的含義。函式過載就是對一個已有的函式賦予新的含義,使之實現新功能,因此,一個函式名就可以用來代表不同功能的函式,也就是 一名多用 運算子也可以過載。實際上,我們已經在不知不覺之中使用了運算子過載。例如,大 家都 已習慣於用加法運算子 對整數 單精度數和雙精度數進行加法運算,如...
c運算子過載return this是什麼意思
記住 過載的運算子是一個函式,他只是一個普通的函式,只是他的函式名稱比較特別,比如 a operator a m 假設a是一個類,那麼這個過載的加操作符,其函式名稱就是operator 函式的反回型別是a,引數是a m。因此c 運算子過載反回的是什麼,要根據反回型別來決定的,不是都一味的反回retu...
C 中這個運算子書上叫成員指標訪問運算子
比如 int p,a 5 p a cout p 針p所指向的變數的值。如果你需要的是結構體中的指標和變數的例專子,可以屬hi我。一個例子 class classname classname c 的用法,經由物件呼叫 c.pmf 5 classname pc c 的用法,經由物件指標呼叫 pc pmf...