c++ - 矩阵元素(使用类)未显示 C++

标签 c++

我正在制作一类矩阵并尝试通过创建一个新的二维矩阵来显示。当我编译并运行这段代码时,程序就退出了,屏幕上什么也没有出现。 我不明白这个问题。任何帮助将不胜感激。谢谢

#include <iostream>
using namespace std;

//making a class of matrix
class Matrix{
private:
    int **array;
    int row,col;
public:
    void initialize(int r,int c);  //function to initialize the array
    //dynamically
    Matrix(int r,int c);           //this function initializes a matrix of r
    //rows and c columns
    ~Matrix();                    //delete the matrix by this
    void display_matrix();         //display matrix
    int get_rows();                //get rows of matrix
    int get_columns();             //get columns of matrix
};

//function to initialize the matrix
void Matrix::initialize(int r,int c)
{
    r=row;
    c=col;

    array=new int*[r];         //creating a 1D array dynamically
    for (int i=0;i<r;i++)
    {
        array[i]=new int[c];      //making the array 2D by adding columns to it
    }

    for (int i=0;i<r;i++)
    {
        for (int j=0;j<c;j++)
        {
            array[i][j]=0;        //setting all elements of array to null
        }
    }
}

//initializing NULL matrix
Matrix::Matrix()
{
    initialize(0,0);
}

//setting row aand columns in matrix
Matrix::Matrix(int r,int c)
{
    initialize(r,c);   //function used to initialize the array
}

//deleting matrix
Matrix::~Matrix()
{
    for (int i=0;i<row;i++)
    {
        delete[]array[i];
    }
    delete[]array;
}

int Matrix::get_rows()
{
    return row;        //return no. of rows
}

int Matrix::get_columns()
{
    return col;      //return columns
}

//display function
void Matrix::display_matrix()
{
    int c=get_columns();
    int r=get_rows();
    for (int i=0;i<r;i++)
    {
        for (int j=0;j<c;j++)
        {
            cout<<array[i][j]<<" ";      //double loop to display all the elements of
            //array
        }
        cout<<endl;
    }
}

int main()
{
    Matrix *array2D=new Matrix(11,10);   //making a new 2D matrix
    array2D->display_matrix();   //displaying it
    system("PAUSE");
    return 0;
}

最佳答案

您的错误在初始化中:

void Matrix::initialize(int r,int c)
{
    r=row;
    c=col;

    ...

您正在将函数变量“r”和“c”设置为类变量“row”和“col”具有的任何值。我很确定您打算做相反的事情。

此外,您确定这是您编译的实际代码吗?您的类缺少 Matrix()

的声明

关于c++ - 矩阵元素(使用类)未显示 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601724/

相关文章:

c++ - 如何展开堆栈以获取指定堆栈指针(SP)的回溯?

c++ - UE4 - 使用 CameraComponent 时观众不旋转(俯仰)

c++ - 为类 std::vector<> 的结构成员重载 operator=

c++ - 调试c++ : . ./nptl/sysdeps/unix/sysv/linux/raise.c:没有这样的文件或目录

c++ - 为什么 std::setprecision(6) 在固定宽度模式下流式传输超过六位数字?

c++ - 使用自定义扩展名保存文件

c++ - 我如何解析电子邮件以获取电子邮件的原始收件人?

C++,从 QTableWidget 添加/删除行

c++ - 如何在 mac 中使用 gcc 链接到 carbon?

c++ - 如果存在同名的不相关全局模板函数,为什么不需要模板关键字?