-1

このエラーを理解するために多くの方法を試しましたが、まだ初心者であり、理解できません。私は配布資料とまったく同じようにしました。行列の出力を表示する必要がありますが、何らかのエラーが原因でプログラムが動かなくなりました。たとえば、starこのスコープで宣言されていないことを示しています。を削除using namespace std;しようとしましたが、ヘッダー ファイルを変更しようとしましたが、まだ解決策がありません。

#include <iostream> 
#include <stdlib.h> 
#include <iomanip>
 
using namespace std;
 
class  Matrix
{
    private:
        int numRows; 
        int numCols;
        float elements[3][3];
        
        public:
            Matrix (int rows=0, int cols=0 )
            {
                numRows=rows;
                numCols=cols;
            }
            
            friend ostream& operator<<(std::ostream&,Matrix&); 
            friend istream& operator>>(std::istream&,Matrix&);
            friend ostream& spaceFirst(std::ostream&);
            friend ostream& spaceBetween(std::ostream&);
            friend ostream& line(std::ostream&);
            friend ostream& newline( ostream&);
            friend ostream& star(std::ostream &);           
            friend ostream& sound(std::ostream&);
};

istream&operator>>(istream&input, Matrix&m)
{
    for (int i=0;i<m.numRows; i++)
    {
        for (int j=0;j,m.numCols;j++)
        {
            input>>m.elements[i][j];
        }
     } 
    return input; 
}
//defining the operator<<
ostream&operator<<(std::ostream &output, Matrix&m)
{
    for (int i=0;i<60; i++)
    {
        if(i==30)
        {
            output<<"Displaying th Matrix:";
        }
        else
        {
            output<<star;
        }
        
    }
    output<<newline;
    for(int r=0;r<m.numRows;r++)
    {
        output<<spacefirst<<line;
        for (int c=0;c<m.numCols;c++)
        {
            output<<spaceBetween<<m.elements[r][c]<<sound<<spaceBetween;
        }
        output<<spaceBetween<<line;
        output<<newline;
    }
    output<<newline;
    return output;
}
ostream & spacefirst(std::ostream & output)
{
    output<<setw(33);
    return output;
}

std::ostream & spaceBetween(std::ostream & output)
{
    output<<setw(4);
    return output;
}

std::ostream & line(std::ostream & output)
{
    output<<"|";
    return output;
}

std::ostream & newline(std::ostream & output)
{
    output<<endl;
    return output;
}

std::ostream & star(std::ostream & output)
{
    output<<"*";
    return output;
}

std::ostream & sound(std::ostream & output)
{
    output<<"\a";
    return output;
}
int main()
{
    Matrix matrix(3,3);
    cin>>matrix;
    cout<<matrix;
    system("Pause");
    return 0;
}
4

1 に答える 1