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