我需要将来自MPIR库的mpf_class
封装到我的班级A
中:
class A
{
mpf_class a; // default constructor - default precision
public:
A(){
a = mpf_class(0,my_precision); // initialize a with zero, but it remains with default precision
mpf_class b = mpf_class(0,my_precision); // initialize local b with zero with my_precision
}
};
但在构造函数中,我无法使用a
初始化my_precision
,因为operator=
不会更改目标的精度。
我创建的唯一方法是在创建my_precision
对象之前将默认精度更改为A
,例如
mpf_set_default_prec(my_precision);
A my_class;
哪个有效,但这是一个非常糟糕的解决方案。那么,如何创建具有所需精度的字段a
?
答案 0 :(得分:0)
只需使用成员初始化列表初始化a
:
A() : a(0, my_precision)
{ }
这避免了a
的默认构造。