c ++类型'complex '中的类中的复杂初始化,不提供调用运算符

问题描述 投票:0回答:1

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

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函数

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

感谢您的阅读和帮助

c++ class oop complex-numbers
1个回答
0
投票

成员变量是在构造函数体被调用之前构造和初始化的。

如果要在对象初始化过程中初始化成员变量,则需要在调用构造函数主体之前进行此操作,为此,您需要使用constructor initializer list

类似

complex_class(double real, double img)
    : mycomplex(real, img)   // Initialize the mycomplex object through its constructor
{
    // Empty, as mycomplex already is initialized
}
© www.soinside.com 2019 - 2024. All rights reserved.