0

mpf_classMPIR ライブラリからクラスにカプセル化する必要があります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_precisionoperator=

私が設立した唯一の方法は、のようmy_precisionにオブジェクトを作成する前に、デフォルトの精度をに変更することですA

mpf_set_default_prec(my_precision);
A my_class;

これは機能しますが、非常に悪い解決策です。aでは、必要な精度でフィールドを作成するにはどうすればよいでしょうか?

4

1 に答える 1

0

メンバー初期化リストを使用して初期化するだけaです:

A() : a(0, my_precision)
{ }

これにより、 のデフォルトの構築が回避されますa

于 2013-04-14T21:32:07.823 に答える