View Single Post
Staro 24.03.2006., 21:44   #2
marioxp
Premium
 
marioxp's Avatar
 
Datum registracije: Feb 2004
Lokacija: Croatia
Postovi: 36
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 <iostream>
#include <string>

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<Row; ++i) {
		pArray[i] = new char[Column+1] ;
		pArray[i][Column-1] = NULL ;
	}cout<<"Column = "<<Column<<endl;
}

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<Column; j++)  //for petlja je skraceni oblik pisanja [i+1] + [i+2] +....
		{s2 = s2 + primer[i+j];}	  //jer tako unosom varijable letters mogu dobit potreban broj ponavljanja
		
			for (int l=0; l<Column; l++)  //upisuje stringove s2 u "array". "l" petlju svaki puta vrti a "i" koristi... 
			{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 = "<<theobj.Row<<" Column = "<<theobj.Column<<" Primer = "<<theobj.primer<<endl;




//for(int i=0; i<(theobj.Row-(theobj.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<theobj.Column; j++)  //for petlja je skraceni oblik pisanja [i+1] + [i+2] +....
//		{s2 = s2 + theobj.primer[i+j];}	  //jer tako unosom varijable letters mogu dobit potreban broj ponavljanja
//		
//			for (int l=0; l<theobj.Column; l++)  //upisuje stringove s2 u "array". "l" petlju svaki puta vrti a "i" koristi... 
//			{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<theobj.Column; n++)
				{cout<<theobj.pArray[m][n];}
		cout<<endl;
		}

system("PAUSE");
	return 0;
}


Vjerojatno pazljiviji mogu skuziti da nema destruktora, a njega nema jer kada ga stavim izbacuje mi gresku. Zasto???????: hitthewa
__________________
mario
marioxp je offline   Reply With Quote