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

1 - クラス定義の後にセミコロンを
挿入します 2 - 正しいヘッダーを挿入します

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

3 - エラーに関してもう少し説明的なコンパイラを入手してみてください。私が言及したすべてのことを行い、あなたのプログラムが実行されました。それを試してみてください

于 2013-09-24T18:23:29.963 に答える
0

欠落しているセミコロンを (クラス宣言の後) 修正し、関数 (標準関数ではない) に#include <conio.h>(Visual Studio) または#include <curses.h>(POSIX システムの場合) を追加すると、正常にコンパイルされます。getch()

于 2013-09-24T18:20:54.410 に答える