C++中关于链表的拷贝赋值函数 operator=的有关问题
C++中关于链表的拷贝赋值函数 operator=的问题
在C++中,通过对“=”的重载,能够实现链表的拷贝赋值,我想问的是,在自己定义 = 运算符重载的函数中,这个函数能不能没有返回值,就是说,这个函数的函数头能不能写成以下这种形式?
void operator=(const List& that) {... ...}
------解决思路----------------------
这样设计,会和很多习惯做法相左,如果不是自己用,还是别这样为好。
1)a=b=c;
2)if(b== (a= fun()));
诸如此类的用法。很常见。
如果你这样写,等于另外规定了 链表的 = 语法,很多人会不习惯的
一般来说,还是不要随便改动 operator 的语义为好
在C++中,通过对“=”的重载,能够实现链表的拷贝赋值,我想问的是,在自己定义 = 运算符重载的函数中,这个函数能不能没有返回值,就是说,这个函数的函数头能不能写成以下这种形式?
void operator=(const List& that) {... ...}
------解决思路----------------------
这样设计,会和很多习惯做法相左,如果不是自己用,还是别这样为好。
1)a=b=c;
2)if(b== (a= fun()));
诸如此类的用法。很常见。
如果你这样写,等于另外规定了 链表的 = 语法,很多人会不习惯的
一般来说,还是不要随便改动 operator 的语义为好