我需要实现一个通用的地图。我决定使用链表实现它。我注意到复制构造函数和赋值运算符是相似的,因为它们都创建和复制链表。 所以我想知道我是否可以在赋值运算符中使用复制运算符,反之亦然。你有想法吗?
答案 0 :(得分:0)
在大多数情况下,如果您已定义了复制构造函数,则在执行复制分配时已使用它。也就是说,编译器隐式使用您的复制构造函数来定义一般情况下的复制赋值。
示例:
#include<iostream>
using namespace std;
struct copy_me {
int member;
copy_me() : member(0) {};
copy_me(const copy_me &other) : member(other.member) {
cout << "copy const called" << endl;
};
};
int main() {
copy_me me;
copy_me other = me;
return other.member;
}
输出:
copy const called
回答您的具体问题: