您有一个libX类,而您有一个classX类。有什么方法可以定义赋值函数libX& operator=(const wrapperX&)
?
最明显的方法是修改库的.hpp文件,但是我做不到。另一种方法是包装我的库,并为包装的函数定义operator=
。 C ++是否允许以其他方式实现这一目标?
这里是上下文。假设上例中的libX是boost::multiprecision::number<R>
。我有一个自定义类Rational,它有一个mpq_t成员,即值。我想写类似number<mpfr_100> val = rationalVal
的东西(rationalVal是我的包装器类。)
答案 0 :(得分:0)
这是@HolyBlackCat在评论中建议的。
一个人可以实现运算符Rational::operator boost::multiprecision::number<T>()
,这将使您将Rational转换为number<T>
,然后使用boost类的operator=
分配给boost数字。