C指標運算子過載

2021-03-10 18:52:56 字數 924 閱讀 3508

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...