[ dejan_su @ 22.01.2005. 09:57 ] @
Kako da deklarisem funkciju koja treba da mi vrati niz karaktera, tj. string. Potrebno mi je u klasi...konkretno imam funkciju za postavljanje imena vlasnika kola, i funkciju za uzimanje imena...ova druga je problem.
[ Alef @ 22.01.2005. 12:09 ] @
Ne znam da li baš razumem problem, ali zašto ne uradiš:

Code:

#include <string>
using namespace std;

string funkcija()
{
        string s;
        ...
        return s;
}
[ dejan_su @ 22.01.2005. 12:37 ] @
Ne radi to. Imam u klasi definisanu promenljivu sa "char ime[20];" E sad mi treba jedna funkcija "uzmiIme" koja ce da daje kao povratnu vrednost gore definisani niz karaktera.
[ Toxter @ 22.01.2005. 12:55 ] @
char* vratiString()
{
char* str;
...
return str;
}
[ dejan_su @ 22.01.2005. 13:04 ] @
probao sam ovako

Code:

class cVozilo
{
private:
  char *zapreminaMotora[10], tipMotora[10], proizvodjac[20];
  char tip[15], imeVlasnika[15], prezimeVlasnika[20];
  int godiste;
public:
  char* uzmiZapreminu()  { return *zapreminaMotora; }
  void postaviZapreminu(void)  { cin >> *zapreminaMotora; }
};


ali kada ukucam u main:
Code:

cVozilo kola;
  kola.postaviZapreminu();
  endl;
  cout << kola.uzmiZapreminu();


kaze Null pointer...
[ Dragi Tata @ 22.01.2005. 15:28 ] @
Najlakše je da poslušaš Alefa i batališ nizove na char i zameniš ih stringovima. Ako ne, onda pogledaj deklaraciju za zapreminaMotora. Deklarisao si niz od deset pointera na char (10 stringova?) a verovatno si hteo samo jedan.
[ dejan_su @ 22.01.2005. 15:40 ] @
Jesam hteo jedan, ali tako nece da radi program. E sad, ja sam probao ono isto sto je napisao Alef, ali nece da radi.
[ ivbrcic @ 22.01.2005. 15:56 ] @
ako si ovako nekako mislio...

Code:


#include <iostream>

using namespace std;

class cVozilo
{
    char zapreminaMotora[10][10], tipMotora[10], proizvodjac[20];
    char tip[15], imeVlasnika[15], prezimeVlasnika[20];
    int godiste;
    int cnt;
public:
    cVozilo () : cnt(0) { }

    char * uzmiZapreminu()  { return zapreminaMotora[cnt]; }
    void postaviZapreminu(void)  { cin >> zapreminaMotora[cnt]; }
};

int main ()
{
    cVozilo kola;

    kola.postaviZapreminu();

    cout << kola.uzmiZapreminu() << endl;
}



ovo radi, cnt sluzi da postavis jedan od deset. mozes vrtiti petlju i unositi, a zatim ispisivati.

a ovo radi sa jednim ...

Code:


#include <iostream>

using namespace std;

class cVozilo
{
    char zapreminaMotora[10], tipMotora[10], proizvodjac[20];
    char tip[15], imeVlasnika[15], prezimeVlasnika[20];
    int godiste;
public:
    char * uzmiZapreminu()  { return zapreminaMotora; }
    void postaviZapreminu(void)  { cin >> zapreminaMotora; }
};

int main ()
{
    cVozilo kola;

    kola.postaviZapreminu();

    cout << kola.uzmiZapreminu() << endl;
}

[ ivbrcic @ 22.01.2005. 16:03 ] @
ovako nekako bi to izgledalo sa stringovima...

Code:


#include <iostream>
#include <string>

using namespace std;

class cVozilo
{
    string zapreminaMotora, tipMotora, proizvodjac;
    string tip, imeVlasnika, prezimeVlasnika;
    int godiste;
public:
    string uzmiZapreminu()  { return zapreminaMotora; }
    void postaviZapreminu()  { cin >> zapreminaMotora; }
};

int main ()
{
    cVozilo kola;

    kola.postaviZapreminu();

    cout << kola.uzmiZapreminu() << endl;
}

[ dejan_su @ 22.01.2005. 16:27 ] @
Odlicno, ovaj drugi sa char sam probao i radi. Hvala!
[ dejan_su @ 22.01.2005. 16:28 ] @
E da, jos nesto. Nisam upisao ono "using namespace std;" i radi svakako. Sta ce to uopste?
[ ivbrcic @ 22.01.2005. 16:40 ] @
moze i bez toga, i moja preporuka ti je da ako pocnes pisati velike projekte u cpp-u da to izbjegavas, a kada su ovako mizerne aplikacije onda je to u redu. to se navodi da ne moras svaki put pisati npr. std::cout << "stogod" << std::endl;

Kad navedes using namespace std tada ne moras za pristupanje stvariima u std-u pisati std i dvije tocke vec direktno ono sto trebas.
[ dejan_su @ 22.01.2005. 16:56 ] @
Mogu da pristupam svemu tome i bez toga. Uopste nikad nisam koristio std::cout...vec samo cout.
[ ivbrcic @ 22.01.2005. 17:21 ] @
cini mi se da si novi (pocetnik) u cpp-u.

Ne znam u cemu programiras, mozda kada kreiras projekt, kreiras "Hello Wordl!" aplikaciju pa ti sam IDE (okruzenje u kojem radis) podesi sve sto je potrebno da bi sto prije kreirao program pa ti nadoda using namespace std.

probaj zakomentirati onu liniju gdje je navedeno using namespace std;

evo sto javi VS 2003

d:\Slobodno\CPP\Projekt\main.cpp(8) : error C2146: syntax error : missing ';' before identifier 'zapreminaMotora'
d:\Slobodno\CPP\Projekt\main.cpp(8) : error C2501: 'cVozilo::string' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(8) : error C2501: 'cVozilo::zapreminaMotora' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(8) : error C2501: 'cVozilo::tipMotora' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(8) : error C2501: 'cVozilo::proizvodjac' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(9) : error C2146: syntax error : missing ';' before identifier 'tip'
d:\Slobodno\CPP\Projekt\main.cpp(9) : error C2501: 'cVozilo::string' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(9) : error C2501: 'cVozilo::tip' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(9) : error C2501: 'cVozilo::imeVlasnika' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(9) : error C2501: 'cVozilo::prezimeVlasnika' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(12) : error C2146: syntax error : missing ';' before identifier 'uzmiZapreminu'
d:\Slobodno\CPP\Projekt\main.cpp(12) : error C2501: 'cVozilo::string' : missing storage-class or type specifiers
d:\Slobodno\CPP\Projekt\main.cpp(12) : warning C4183: 'uzmiZapreminu': missing return type; assumed to be a member function returning 'int'
d:\Slobodno\CPP\Projekt\main.cpp(22) : error C2065: 'cout' : undeclared identifier
d:\Slobodno\CPP\Projekt\main.cpp(22) : error C2065: 'endl' : undeclared identifier
[ dejan_su @ 22.01.2005. 20:03 ] @
Nisam pocetnik, ne brini. Ali programiram mnooogo vise u DOS-u nego u Windows-u. Ovaj program je u dosu, Borlandov je kompajler...i nema nikakvih gresaka. Mislim, tj. siguran sam da ni kod jednog DOS kompajlera to nije greska...
[ filmil @ 23.01.2005. 00:40 ] @
Citat:
 Nisam pocetnik, ne brini. Ali programiram mnooogo vise u DOS-u nego u Windows-u. Ovaj program je u dosu, Borlandov je kompajler...i nema nikakvih gresaka.
DOS kompajleri su zastareli. Savremeni C++ standard zahteva da se koristi std::.

f