c++ - 为什么我不必在 C++ 中重载赋值运算符?

标签 c++ operator-overloading

这是我的代码:

class Example {
 ...declarations/definitions...
};

Example operator + (Example e)
{
 Example temp;
 ...do addition...
 return temp;
}

//main
void main()
{
 Example a(1,2);
 Example b(3,4);
 Example c;
 c = a+b;
}

现在让我感到困惑的是,我必须重载 + 运算符才能使其与 vector 一起工作,但是等号“=”呢?我正在将一个 vector 分配给另一个 vector ,我不应该也重载它吗?还是已经提供给我们了? 谢谢。

最佳答案

如果您的类是默认可分配的(例如,如果它有任何引用成员,则如果您没有特殊工作,它就不会被分配),该语言会自动为您提供默认的 operator=。它所做的只是分别分配基数和每个成员。

关于c++ - 为什么我不必在 C++ 中重载赋值运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855654/

相关文章:

c++ - 如何提高 PNG 数据解码时间?

c++ - 在 Qt 中将 Office 2007-2012 文档转换为 pdf 和图像

c++ - C++ 中的嵌套子类

c++ - 如何在 C++ 中将文件读入 vector ?

c# - 覆盖 == 似乎在继承类中不起作用

c++ - 逆向工程 C++

c++ - 错误重载运算符 '>>'

c++ - 如何管理std::vector的std::vector

c++ - "Ambigous"等效转换 - 我可以让编译器只选择任何一个吗?

c# - C# 中的 Tribool 实现