看板 C_and_CPP 關於我們 聯絡資訊
: int main(){ : Demo<myClass> d; : myClass *mptr = 0; : //我該如何使用 Demo 類別的 Assigment 和 Accessors 呢? : cout << *d <<endl; //error : d = *mptr; //error : d.operator*(mptr); //error : } : 感謝指教... 感謝板友的指教 的確應該是 d = mptr int main(){ Demo<myClass> d; myClass *mptr; //我該如何使用 Demo 類別的 Assigment 和 Accessors 呢? d = mptr; //訊息如下 } C:\Users\USER\AppData\Local\Temp\ccEmgiM2.o Untitled1.cpp:(.text+0x25): undefined reference to `Demo<myClass>::operator=(myClass*)' C:\Users\USER\Desktop\collect2.exe [Error] ld returned 1 exit status -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.115.110.72 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1460811122.A.2D1.html ※ 編輯: gn00618777 (58.115.110.72), 04/16/2016 20:54:03
Frozenmouse: 重看了一下你的code,你沒實作operator=嗎? 04/16 21:01
gn00618777: F大意思是說 Demo(myClass) a or Demo(myClass) b 之 04/16 21:14
gn00618777: 間的 a = b operator 嗎? 04/16 21:14
Frozenmouse: 我的意思是你宣告了Demo<T>::operator=卻沒實作它 04/16 21:21
Frozenmouse: 你說的operator對但是參數型態不對 04/16 21:23
gn00618777: F大,你是對的 我沒有去實作他,實作後可以用了 04/16 21:50
gn00618777: 那請問Accessors呢? 我在額外宣告一個 myClass *ptr; 04/16 21:52
gn00618777: Demo<myClass> d; d = mptr; ptr = d->; 04/16 21:56
gn00618777: operator -> 我該如何使用呢? 04/16 21:57
gn00618777: 編譯錯誤訊息 04/16 22:01
gn00618777: [Error] expected unqualified-id before ';' token 04/16 22:02
bibo9901: 啊…就不是這樣用. 你的書上應該有寫吧? 04/16 22:18
bibo9901: d->method() 會呼叫 (d.operator->())->method() 04/16 22:19
Frozenmouse: operator->照這樣寫應該是讓你的Demo<T>可以像指標一 04/16 22:21
Frozenmouse: 樣操作,像是 d->test() 就會先呼叫->再呼叫回傳值的 04/16 22:21
Frozenmouse: test() 04/16 22:21
Frozenmouse: 啊 推慢了XD 04/16 22:22
gn00618777: 我懂了! 太感謝 : ))) 04/16 22:32
gn00618777: 只急著問>"<,謝謝你們的講解 04/16 22:33