Re: [问题] c++ operator 的 oeverload

楼主: gn00618777 (非常念旧)   2016-04-16 20:51:57
: 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
作者: Frozenmouse (*冰之鼠*)   2016-04-16 21:01:00
重看了一下你的code,你没实作operator=吗?
楼主: gn00618777 (非常念旧)   2016-04-16 21:14:00
F大意思是说 Demo(myClass) a or Demo(myClass) b 之间的 a = b operator 吗?
作者: Frozenmouse (*冰之鼠*)   2016-04-16 21:21:00
我的意思是你宣告了Demo<T>::operator=却没实作它你说的operator对但是参数型态不对
楼主: gn00618777 (非常念旧)   2016-04-16 21:50:00
F大,你是对的 我没有去实作他,实作后可以用了那请问Accessors呢? 我在额外宣告一个 myClass *ptr;Demo<myClass> d; d = mptr; ptr = d->;operator -> 我该如何使用呢?编译错误讯息[Error] expected unqualified-id before ';' token
作者: bibo9901 (function(){})()   2016-04-16 22:18:00
啊…就不是这样用. 你的书上应该有写吧?d->method() 会呼叫 (d.operator->())->method()
作者: Frozenmouse (*冰之鼠*)   2016-04-16 22:21:00
operator->照这样写应该是让你的Demo<T>可以像指标一样操作,像是 d->test() 就会先呼叫->再呼叫回传值的test()啊 推慢了XD
楼主: gn00618777 (非常念旧)   2016-04-16 22:32:00
我懂了! 太感谢 : )))只急着问>"<,谢谢你们的讲解

Links booklink

Contact Us: admin [ a t ] ucptt.com