このエラーを理解するために多くの方法を試しましたが、まだ初心者であり、理解できません。私は配布資料とまったく同じようにしました。行列の出力を表示する必要がありますが、何らかのエラーが原因でプログラムが動かなくなりました。たとえば、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;
}