如何动态创建类并使用重载的构造函数?

时间:2019-03-26 01:48:28

标签: c++ class

我想创建一个复数矩阵。关键是我想动态创建矩阵。当我想调用重载的构造函数时,我陷入了困境。

我有2个班级: -nrComplex表示复数; -mMatrix表示复数矩阵;

在代码中,我首先创建行,然后我想为每一行创建列,但是我不知道如何使用重载的构造函数初始化类

有什么主意吗?谢谢

我已经做过一些研究,但是我找不到适合我需求的任何东西

class nrComplex
{
private:
    float mReala, mImaginara;
public:
    nrComplex ();
    nrComplex (float, float);

    friend class mMatrix;

};

nrComplex::nrComplex()
{
    mReala = 0;
    mImaginara = 0;
}

nrComplex::nrComplex(float a, float b)
{
    mReala = a;
    mImaginara = b;
}
class mMatrix
{
private:
    int rows, columns;
    nrComplex **matrice;

public:
    mMatrix ();
    mMatrix (float, float);

};

mMatrix::mMatrix()
{
    rows = 0;
    columns = 0;
    matrice = NULL;
}

mMatrix::mMatrix (float n, float m)
{
    rows = n;
    columns = m;

    matrice = new nrComplex*[rows];

    for(int i=0;i<rows;i++)
    {
        matrice[i] = new nrComplex[columns];
    }

   // here is the part ^^^ where i get stuck
}

1 个答案:

答案 0 :(得分:1)

方括号将使您创建nrComplex对象的数组。它们将使用默认构造函数进行初始化。如果要重新初始化nrComplex对象,可以使用new放置。我认为您无法创建对象数组并同时调用默认构造函数以外的任何东西。

既然您可以和朋友打交道,就可以设置内部变量