#1 speedTJ
No podľa môjho názoru, kedže píšeš kód v C++ a nie v C, tak by si mal používať new namiesto malloc.
Ďaľšia vec je tá, že by si si mal premenné deklarovať v private časti a nie stále v nejakej metóde (napríklad to **pole)
Máš tam konštruktor Tabulka, kde si vytvoríš objekt. Následne prejdeš do metódy sectiVsechnyHodnoty a vytváraš si ďalší objekt, čo je blbosť, keďže si si ho už raz vytvoril.
Čo je tvoj problém neviem, kedže si neopísal čo máš vôbec za problém. Ale tá tvoja funkcia by ti aj tak nič nevracala, kedže vysledek je lokálna premenná.
A teraz keď tak pozerám, tak presne preto ti to aj nefunguje. V konstruktori si si vytvoril premennú **pole. Lenže to je len lokálna premenná, ktorá ti potom zanikne a prikaz vysledek += pole[i][j]; // PROBLÉM nedáva zmysel, keďže pole nepozná.
Treba to deklarovať v private časti
#include <iostream>
#include <ctime>
using namespace std;
class Tabulka{
private:
int **pole;
int riadok;
int stlpec;
int sum;
public:
Tabulka();
Tabulka(int riadok, int stlpec);
void sucet();
int get_sum() {return sum;}
};
Tabulka::Tabulka(){
pole = NULL;
riadok = 0;
stlpec = 0;
sum = 0;
}
Tabulka::Tabulka(int riadok, int stlpec){
srand(time(0));
pole = new int*[riadok];
for (int i=0; i < riadok; i++) {
pole[i] = new int[stlpec];
for (int j =0; j < stlpec; j++) {
pole[i][j] = 1 + rand() % 100;
}
}
sum = 0;
this->riadok = riadok;
this->stlpec = stlpec;
}
void Tabulka::sucet(){
for (int i = 0; i < riadok; i++) {
for (int j = 0; j < stlpec; j++) {
sum += pole[i][j];
}
}
}
int main()
{
Tabulka tab(10, 5);
int sucet;
tab.sucet();
sucet = tab.get_sum();
cout << "Sucet matice je: " << sucet << endl;
system("PAUSE");
}