Avrei bisogno di un aiutino per risolvere questo esercizio sulle classi
il testo è il seguente:
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 Matrice.h
#ifndef MATRICE_H
#define MATRICE_H
#include<string>
using namespace std;
const int N=3;
class Matrice
{
public:
Matrice();
void leggi();
void stampa();
void mirror();
private: string a[N][N];
};
#endif
file 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;
string a[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][N-1-j]=temp;
a[i][j]=a[i][N-1-j];
}
}
}
file provaMatrice.cpp
#include<iostream>
#include<string>
#include "Matrice.h"
int i,j;
string a[N][N];
main()
{
Matrice M();
leggi(a[][]);
stampa(a[][]);
mirror(a[][]);
stampa(a[][]);
}