我有两个类 Dot 和 Point 做完全相同的事情。 它们只是来自两个不同的库,我必须同时使用它们。
我希望能够做到:
Dot d;
Point p = d;
std::map<Dot, int> m;
m[p] = 1;
我无法修改库源代码。
我的想法是在我的实现中添加一些运算符...但是我遗漏了一些东西,我无法编译我的代码。
我有很多
error: prototype for 'void Dot::operator=(const Point&)'
does not match any in class....
有什么提示吗?
谢谢
最佳答案
您不能在类 A
和 B
之间添加新的隐式转换,除非您被允许修改 A
或 B
。如果你真的很绝望,你可以创建一个新类 C
,它具有从 A
和 B
转换构造函数和转换运算符,并且将其用作 m
...
关于c++ - 有一个新的转换运算符而不修改源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211877/