Anonymní profil Robo – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Robo – Programujte.comAnonymní profil Robo – Programujte.com

 

Příspěvky odeslané z IP adresy 178.253.165.–

Robo
C / C++ › Předání objektu parametrem
12. 10. 2013   #182255

#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");
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý