C ++类型'complex <double>'中的类中的复杂初始化不提供调用运算符

时间:2019-10-23 12:40:11

标签: c++ class oop complex-numbers

嗨,我目前正在尝试在一个类中初始化一个复数

class complex_class{

    public:

        complex<double> mycomplex;

        complex_class(double real, double img){

            //mycomplex(real, img);
            mycomplex.real(real);
            mycomplex.imag(img);

        }

};

当我尝试直接分配一些值时,出现错误消息

错误:类型“ complex”不提供呼叫操作员             mycomplex(real,img);

仅适用于real和imag函数

所以我想问你们我做错了什么,我不理解什么。

感谢您的阅读和帮助

1 个答案:

答案 0 :(得分:2)

在调用构造函数主体之前,先构造并初始化成员变量。

如果要在对象初始化过程中初始化成员变量,则需要在调用构造函数主体之前进行此操作,为此,您需要使用构造函数初始化程序列表。 / p>

类似

complex_class(double real, double img)
    : mycomplex(real, img)   // Initialize the mycomplex object through its constructor
{
    // Empty, as mycomplex already is initialized
}