1

当我尝试编译以下程序时,它显示“构建失败。对象引用未设置为对象的实例”。我对 c++ 有点陌生,所以如果有人可以帮助我,那就太好了。我只是在尝试我在书中看到的一些例子,所以我不知道这有什么问题。

using namespace std;

class matrix
{
    int m[3][3];

    public:
        void read(void);
        void display(void);

        friend matrix trans(matrix);
}

void matrix :: read(void)
{
    cout<<"Enter the elements of the 3x3 array matrix : \n";
    int i,j;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            cout<<"m["<<i<<"]["<<j<<"] =";
            cin>>m[i][j];
        }
    }
}

void matrix :: display(void)
{
    int i,j;
    for(i=0;i<3;i++)
    {
        cout<<"\n";
        for(j=0;j<3;j++)
        {
            cout<<m[i][j]<<"\t";
        }
    }
}

matrix trans(matrix m1)
{
    matrix m2;
    int i,j;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            m2.m[i][j] = m1.m[j][i];
        }
    }
    return(m2);             //returning an object
}

int main()
{
    matrix mat1,mat2;
    mat1.read();
    cout<<"\nYou entered the following matrix :";
    mat1.display();

    mat2 = trans(mat1);
    cout<<"\nTransposed matrix :";
    mat2.display();

    getch();
    return 0;
}
4

2 回答 2

0

在修复丢失的分号(在类声明之后)并为函数(不是标准函数)添加#include <conio.h>(Visual Studio)或#include <curses.h>(对于 POSIX 系统)后,它可以正常编译。getch()

于 2013-09-24T18:20:54.410 回答
0

1 - 在类定义后插入分号
2 - 插入正确的标题

   #include <iostream>
   #include <conio.h>

3 - 尝试获得一个对错误更具描述性的编译器。我做了我提到的所有事情,你的程序运行了。试试看

于 2013-09-24T18:23:29.963 回答