其他分享
首页 > 其他分享> > c – 在类默认构造函数中初始化2×2矩阵

c – 在类默认构造函数中初始化2×2矩阵

作者:互联网

我正在尝试在C中创建一个2×2矩阵类,并希望通过默认构造函数将矩阵初始化为单位矩阵.我的班级是:

class Matrix2x2
{
public:
    Matrix2x2();
    void setVal(int row, int col, double newVal);

private:
    double n[2][2];
};

void Matrix2x2::setVal(int row, int col, double newVal)
{
n[row][col] = newVal;
}

我尝试了几种不同的构造函数,但它们都没有做我想要的.

Matrix2x2::Matrix2x2(): setVal(0,0,1), setVal(0,1,0), setVal(1,0,0), setVal(1,1,1)
{  }  

 Matrix2x2::Matrix2x2(): n[0][0](1), n[0][1](0), n[1][0](0), n[1][1](1)
{  }  

我意识到这可能只是一个简单的错误,但我似乎无法找到它,任何想法?

解决方法:

您可以使用数组聚合:

class Matrix2x2 {
public:
    Matrix2x2() : n({{3,1},{4,7}}) {
    }
    void setVal(int row, int col, double newVal);
private:
    double n[2][2];
};

Demo on ideone.

标签:c,class,matrix,default-constructor
来源: https://codeday.me/bug/20190901/1781406.html