Salve a tutti ho già fatto questa domanda in un post precedente ma evidentemente non sono riuscito a capire per bene quali sono gli errori che mi dà il compilatore
potreste aiutarmi ecco il testo ed una mia versione
Realizzare in c++ una classe Matrice che possiede come attributo un array NxN di stringhe , dove N è una costante intera.
La classe deve disporre di:
-un costruttore che inizializza tutti gli elementi della matrice con la stringa vuota;
-una funzione leggi() che legge riga per riga dallo standard input il valore di tutti gli elementi della matrice;
-una funzione stampa() che stampa riga per riga dallo standard output il valore di tutti gli elementi della matrice(andando a capo per ogni nuova riga);
-una funzione mirror() che modifica la matrice scambiando tra loro le colonne k e N-1-k(k=0,1,....,N-1).
Esempio data una matrice 3x3:
a b c
d e f
g h i
il suo mirror è
c b a
f e d
i h g
data una matrice 4x4:
a b c l
d e f m
g h i n
o p q r
il suo mirror è
l c b a
m f e d
n i h g
r q p o
allora io l'ho fatto per mezzo di una compilazione separata
ecco il mio codice con qualche errorino che non cqapisco come correggerlo
file header
#ifndef MATRICE_H_INCLUDED
#define MATRICE_H_INCLUDED
#include<string>
using namespace std;
const int N=4;
class matrice
{
public:
matrice();
void leggi();
void stampa();
void mirror();
private: string a[N][N];
}
#endif // MATRICE_H_INCLUDED
file sorgente matrice.cpp
#include<iostream>
#include<string>
#include "matrice.h"
using namespace std;
matrice::matrice()
{
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
a[i][j]="";
}
}
}
void matrice::leggi()
{
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
getline(cin, a[i][j]);
}
}
}
void matrice::stampa()
{
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
void matrice::mirror()
{
int i,j;
string temp;
for(i=0;i<N;i++){
for(j=0;j<N/2;j++){
temp=a[i][j];
a[i][j]=a[i][N-1-j];
a[i][N-1-j]=temp;
}
}
}
file sorgente matricetest.cpp
#include<iostream>
#include<string>
#include "matrice.h"
main()
{
matrice M;
M.leggi();
M.stampa();
M.mirror();
M.stampa();
}