代码之家  ›  专栏  ›  技术社区  ›  Tae

c++类型“Complex<double>”中的类中的复杂初始化不提供调用运算符

  •  0
  • Tae  · 技术社区  · 6 年前

    嗨,我现在试图在一个类中初始化一个复数

    class complex_class{
    
        public:
    
            complex<double> mycomplex;
    
            complex_class(double real, double img){
    
                //mycomplex(real, img);
                mycomplex.real(real);
                mycomplex.imag(img);
    
            }
    
    };
    

    当我试图直接赋值时,出现了一条错误消息

    错误:“complex”类型不提供调用运算符 mycomplex(真实,img);

    它只适用于函数real和imag

    所以我想问你们我做错了什么,我不明白什么。

    谢谢你的阅读和帮助

    0 回复  |  直到 6 年前
        1
  •  2
  •   Some programmer dude    6 年前

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

    如果要将成员变量初始化为对象初始化的一部分,则需要在调用构造函数体之前执行此操作,为此,需要使用 构造函数初始化列表 .

    有点像

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