为什么我不能重载operator =?

Nov*_*tor 0 c++ operator-overloading assignment-operator implicit-conversion operator-keyword

我想让以下代码工作:

Mylist lst;
vector<int> v = lst;
Run Code Online (Sandbox Code Playgroud)

所以我看到我需要将列表转换为矢量.我试过这段代码:

vector<int> operator=(vector<int> v, const List & l) {
    return v; // more profound stuff later :-)
}
Run Code Online (Sandbox Code Playgroud)

(把它放在课外).不幸的是Visual Studio抛出了我:"错误:'operator ='必须是成员函数".我不明白 - 我该怎么办?我不能把这个功能放在矢量类中......你可以帮帮我吗?谢谢!

Eli*_*sky 7

您可以将类型的强制转换重载为任何其他类型(请参阅Google和Google可以轻松发现的此类和其他资源).我想这就是你需要的.重载赋值运算符在C++中用于另一件事.