PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   Class s poljem kako? (https://forum.pcekspert.com/showthread.php?t=36082)

marioxp 20.03.2006. 12:02

Class s poljem kako?
 
Vizija ide ovako:
Zelio bi da objekt sadrzava dinamicko (new) dvodimezionalno polje koje ce jedna member function puniti.
E sada je pitanje gdje da incijaliziram to polje u funkciji ili u constructoru
kod koji pravi polje je sljedeci:

char **polje; //dinamicka alokacija polja s pozivacem na pokazivac
polje = new char*[sizeP];
for (int i = 0; i < sizeP; i++)
{
polje[i] = new char[stupaca + 1];
polje[i][0] = stupaca;
for (int j = 1; j <= stupaca; j++)
polje[i][j] = i + 1 + j / 100.; //ovo nemam pojma sta je ali tako je u knjizi
}


2.pitanje kako bi trebao izgledati copy constructor ako uopca postoji potreba za njim

3.Jeli mogu samo stavit u destructor kod koji ce bristi to polje iz memorije

for (int i = 0; i < sizeP; i++)
delete [] polje[i];
delete [] polje;



Hvala

marioxp 24.03.2006. 21:44

Dio problema sam uspio rijestiti ali se kako to obicno biva naisao novi!

Trebalo bi sada da funkcija clanica (member) setArray to polje popuni to radi kada napravim objekt i to u main izvedem ali mi neradi kada zelim da ona sama prilikom kostrukcije objekta to napravi.
Odnosno ne znam kako da prenesem polje(dvodimensionalno dinamicko) u funkciju i napunim ga.
Da li bi se to moglo da nekako prenesem objekt u funkciju ili da napravim neku drugu klasu koja bi to mogla napraviti.



Code:

// new3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include
#include

using namespace std;

class twodymArray
{public:
        int Row;
        int Column;
public:
        char **pArray;
        twodymArray(); // default constructor
        string primer;
        twodymArray(string Cprimer,int Cletters);  //constructor
        twodymArray(twodymArray &);                //copy constructor
        void setRow (){Row = primer.size();};    //inline member finction
        void setArray(int Row, int Column, string primer, char **pArray);
};
twodymArray::twodymArray()
{
pArray = NULL;
}

twodymArray::twodymArray(string Cprimer,int Cletters)
{
primer = Cprimer;
Column = Cletters;
setRow();
void setArray(int Row, int Column, string primer, char **pArray);

pArray = new char*[Row] ;
        for(int i=0; i                 pArray[i] = new char[Column+1] ;
                pArray[i][Column-1] = NULL ;
        }cout<<"Column = "< }

twodymArray::twodymArray(twodymArray &objtwodymArray)  //copy constructor
{
pArray = new char*[Row];
        for (int i = 0; i < Row; i++) {
               
               
                pArray[i] = new char[Column + 1];
                pArray[i][0] = Column;
                for (int j = 1; j <= Column; j++)
                        pArray[i][j] = i + 1 + j / 100.;
        }
}


void setArray(int Row, int Column,string primer,char **pArray)
{string s2;
for(int i=0; i<(Row-(Column-1)); i++)                        //formula (row-(letters-1)) je nuzna da ne izadje izvan
{                                                                                                //polja a daje broj koliko ce se "usporedjica" napraviti
                for (int j=0; j                 {s2 = s2 + primer[i+j];}          //jer tako unosom varijable letters mogu dobit potreban broj ponavljanja
               
                        for (int l=0; l                         {pArray [i][l] = s2[l];}  // ...od odozgor
               
        s2.erase();                                                //"s2.erase();"ovo je potrebno da se string svaki puta ocisti jer bez brisanja
}                                                                        //dolazi do nagomilavanja a ne da mi kida primer u male dijelove za usporedbu

}


int _tmain(int argc, _TCHAR* argv[])
{
        string S1, s2;
        S1=("nestjakomajosiima");
twodymArray theobj(S1,4);
cout<<"Row = "< //                for (int j=0; j //                {s2 = s2 + theobj.primer[i+j];}          //jer tako unosom varijable letters mogu dobit potreban broj ponavljanja
//               
//                        for (int l=0; l //                        {theobj.pArray [i][l] = s2[l];}  // ...od odozgor
//               
//        s2.erase();                                                //"s2.erase();"ovo je potrebno da se string svaki puta ocisti jer bez brisanja
//}               


for (int m=0; m<(theobj.Row-(theobj.Column-1)); m++) //
                {
                        for (int n=0; n                                 {cout<                 cout<                 }

system("PAUSE");
        return 0;
}



Vjerojatno pazljiviji mogu skuziti da nema destruktora, a njega nema jer kada ga stavim izbacuje mi gresku. Zasto???????: hitthewa


Sva vremena su GMT +2. Sada je 13:44.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger