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. ------------