Mam następujący kod:
main.cpp
#include <iostream>
#include <ctime>
#include "macierz.h"
#include "wektor.h"
int main(){
using namespace std;
//tablice, które zostaną wykorzystane do utworzenia macierzy
int** macierz1 = new int*[5];
for (int i = 0; i < 5; i++)
macierz1[i] = new int[5];
int** macierz2 = new int*[5];
for (int i = 0; i < 5; i++)
macierz2[i] = new int[5];
//uzupelnienie tablic
srand(time(NULL));
for (int i = 0; i < 5; i++){
for (int j = 0; j < 5; j++){
macierz1[i][j] = rand() % 10 + 1;
macierz2[i][j] = rand() % 10 + 1;
}
}
//utworzenie macierzy
Macierz *macierz1 = new Macierz(5, 5, macierz1);
Macierz *macierz2 = new Macierz(5, 5, macierz2);
system("pause");
return 0;
}
oraz macierz.cpp
#include "macierz.h"
#include <cstring>
//konstruktory
Macierz::Macierz(int i, int j){
wiersze = i;
kolumny = j;
int** macierz = new int*[wiersze];
for (int it = 0; it < kolumny; it++)
macierz[it] = new int [kolumny];
}
Macierz::Macierz(int i, int j, int** wartosc){
wiersze = i;
kolumny = j;
wartosci = wartosc;
}
Macierz::Macierz(int i, int j, Macierz &podstawowy){
wiersze = i;
kolumny = j;
int** macierz = new int*[wiersze];
for (int it = 0; it < kolumny; it++)
macierz[it] = new int[kolumny];
memcpy(wartosci, podstawowy.wartosci, sizeof(int) * wiersze * kolumny);
}
//metody dostepowe
int Macierz::dostepWiersze(){
return wiersze;
}
int Macierz::dostepKolumny(){
return kolumny;
}
int** Macierz::dostepWartosci(){
return wartosci;
}
Podczas kompilacji otrzymuję błąd o treści: "differs in levels of indirection from int**", który odnosi się do linijek:
Macierz *macierz1 = new Macierz(5, 5, macierz1);
Macierz *macierz2 = new Macierz(5, 5, macierz2);
Próbowałem to naprawić i nie wiem za bardzo jak sobie poradzić z tym problem. Prosiłbym o pomoc.
Przy okazji jak ten kod wygląda od strony jakościowej? Liczę na wskazówki, ponieważ jestem początkującym.