为库创建operator =

时间:2018-11-29 16:47:56

标签: c++ class

您有一个libX类,而您有一个classX类。有什么方法可以定义赋值函数libX& operator=(const wrapperX&)

最明显的方法是修改库的.hpp文件,但是我做不到。另一种方法是包装我的库,并为包装的函数定义operator=。 C ++是否允许以其他方式实现这一目标?


这里是上下文。假设上例中的libX是boost::multiprecision::number<R>。我有一个自定义类Rational,它有一个mpq_t成员,即值。我想写类似number<mpfr_100> val = rationalVal的东西(rationalVal是我的包装器类。)

1 个答案:

答案 0 :(得分:0)

这是@HolyBlackCat在评论中建议的。

一个人可以实现运算符Rational::operator boost::multiprecision::number<T>(),这将使您将Rational转换为number<T>,然后使用boost类的operator=分配给boost数字。