Posted By: Neuromancer (... bright eyes ...) on 'CZprogram' Title: Re: Dvourozmerne pole objektu v C++ Date: Sun Jul 27 22:22:48 2003 > Ahoj, > > potrebuji nadefinovat a predavat dvourozmerne pole objektu, zkousel jsem > neco > (viz. program dole) ale nejak mi to nefunguje. Muze mi to nekdo prepsat do > chodiciho tvaru? > > #include "stdafx.h" > #include <iostream.h> > > // definujeme si objekt > class Bod > { > public: > int x; > int y; > }; > > void napln(Bod **pole) > { > for (int i = 0; i<3; i++) > { > for (int j = 0; i<3; i++) > { > // Tady se bude neco ukladat do pole > Bod k; > k.y = i; > k.x = j; > pole[i][j] = k; > > } > } > } > > > void main(int argc, char* argv[]) > { > > Bod **pole = (Bod **) new Bod[3][3]; Dobra rada: v C++ pretypovani (obzvlast tohle, co funguje jako reinterpret cast) potrebujes minimalne. Predpokladam, ze bez nej ti kompilator brblal, co? To je proto, ze Bod** sice funguje jako dvourozmerne pole, ale jine nez Bod[3][3]. To prvni je pole poli (tj. mas jednorozmerne pole ukazatelu na jednorozmerne pole), to druhe je opravdove 2d pole. Takze ty chces asi tohle: Bod (*pole)[3] = new Bod[3][3]; a o par radku vys: void napln(Bod pole[3][3]) > // pole 3x3 predame a naplnime > napln(pole); > > > // pole vytiskneme > for (int i = 0; i<3; i++) > { > for (int j = 0; j<3; j++) > { > cout << pole[i][j].x << endl << pole[i][j].y << endl; > cout << "-----------" << endl; > } > > } > > } > > dammie --------------------------------------------------------------------/ | ICQ 20529980 Neuromancer | | Take me far away, where the dragons fly, | /------------ leave me to my dreams, or just let me die. ------------