Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

class-e i nizovi

[es] :: C/C++ programiranje :: class-e i nizovi

[ Pregleda: 4364 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ouros
Seattle, WA

Član broj: 342
Poruke: 275
*.uv2a.csupomona.edu

ICQ: 83493423


Profil

icon class-e i nizovi21.01.2002. u 06:27 - pre 270 meseci
Pozdrav svima
Imam problem jedan. Poceo sam da radim na nekom domacem za skolu ali imam problem. Nigde ne mogu da nadjem kako da radim sa Class-ama i Array's

Ovo ispod je prost primer

#include "stdafx.h"
#include <iostream>
#include <iomanip>

using std::cout;
using std::cin;
using std::endl;

// defining a class
class human{
private:
int empNo;
char name[32];
char address[32];
float salary;
public:
void enterEmployee(int);
void listEmployee(int);
};

void human::enterEmployee(int i)
{
empNo = i;
cout << "\nEmployee No: " << empNo << endl;
cout << "Name: "; cin >> name;
cout << "Address: "; cin >> address;
cout << "Salary: "; cin >> salary; cout << endl;
cout << endl;
}

void human::listEmployee(int i)
{
cout << "Employee No: " << empNo << endl;
cout << "Name: " << name << endl;
cout << "Address: " << address << endl;
cout << "Salary: " << salary << endl;
cout << "-----------------" << endl;
}

// starting w/ main function
int main()
{

int i=0;
human emp1, emp2, emp3;

cout << "\n Enter the following information !" << endl;

emp1.enterEmployee(1);
emp2.enterEmployee(2);
emp3.enterEmployee(3);

cout << "\n List of Employees" << endl;

emp1.listEmployee(1);
emp2.listEmployee(2);
emp3.listEmployee(3);

return 0;
}

ovo sam samo probao da vidim da li ce da mi radi. vidite i sami da je glupo odradjeno. e sad, ja znam kako da uradim ovo u drugom jeziku ali ne i u C++.

sta u stvari hocu da uradim ?
hocu da imam array recimo

human name_array[5];

i da kasnije zovem funkciju fillArray

koja bi glasila nesto tipa

human::fillArray( E sad ne znam sta ovde da stavim)
{
// sta se sad ovde pise. jel nesto tipa ?

human[ i ].name = ........;

// ili

name_array[ i ].name = ....... ;

// ili nesto sasvim peto.
}

Ajde pomagajte ako mozete. Nadam se da ste me razumeli.
Znaci ovaj program sto sam gore napisao,hocu uprosten koristeci array's ali ne znam sintaksu.

Radim u VC++ (Win 2k).

Hvala
Uros
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7173 Profil

icon Re: class-e i nizovi21.01.2002. u 09:06 - pre 270 meseci
E ovako, pokusacu da ti pomognem -

Ne mozes tako da dodeljujes imena stringovima, ako koristis char[] array za polje.

Probaj:

Dodaj funkciju

Code:

__inline human::EditName(char *szName)
{
  strcpy(name, szName);
  /* ili: sprintf(name, "%s", szName); */
}

pa onda odakle hoces pozivas:

name_array[k].EditName("Pera Peric");

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

ouros
Seattle, WA

Član broj: 342
Poruke: 275
*.uv2a.csupomona.edu

ICQ: 83493423


Profil

icon Re: class-e i nizovi21.01.2002. u 18:38 - pre 270 meseci
Hvala ti,ali ako te ne mrzi pogledaj ovo i reci mi u cemu sada gresim


#include "stdafx.h"
#include <iostream>
#include <iomanip>

using std::cout;
using std::cin;
using std::endl;

// defining a class
class human{
private:
char name[32];
public:
editName(char *);
listName();
};


human::editName(char *szName)
{
strcpy(name, szName);
}

human::listName()
{
cout << name;
}

// starting w/ main function

int main()
{

int i=0;
human name_array[5];
char employee[20];



for (i=0; i < 5; i++) {
cout << "name: ";
cin >> employee;
name_array[ i ].editName(employee);
cout << endl;
}

// list array

for (i=0; i < 5; i++) { // ovde je negde greska valjda
cout << "Name: " << name_array[ i ].listName() << endl;
}

return 0;
}


obrati paznju sta mi izbacuje
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7173 Profil

icon Re: class-e i nizovi21.01.2002. u 18:52 - pre 270 meseci
Hmm.. za prvu pomoc, izbaci name[] niz iz protected u public (C++ cistunci znam da je ovo "no no" sto se stila programiranja tice, ali ovo je prva pomoc)

i onda umesto:

cout << "Name: " << name_array[ i ].listName() << endl;

stavi:

cout << "Name: " << name_array[ i ].name << endl;


DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

ouros
Seattle, WA

Član broj: 342
Poruke: 275
*.uv2a.csupomona.edu

ICQ: 83493423


Profil

icon Re: class-e i nizovi21.01.2002. u 19:11 - pre 270 meseci
Citat:
Ivan Dimkovic:
Hmm.. za prvu pomoc, izbaci name[] niz iz protected u public (C++ cistunci znam da je ovo "no no" sto se stila programiranja tice, ali ovo je prva pomoc)

i onda umesto:

cout << "Name: " << name_array[ i ].listName() << endl;

stavi:

cout << "Name: " << name_array[ i ].name << endl;



Hvala ti,sada radi.
Ako neko ima bolju ideju neka kaze, posto bi trebalo name da mi bude u private,ali ajde,ovo sad radi.

Pozdrav
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7173 Profil

icon Re: class-e i nizovi21.01.2002. u 19:15 - pre 270 meseci
Ja mislim da je problem sto je taj cout ispisao i return vrednost one tvoje funkcije za ispis, koja opet nesto vraca na stack (odatle oni brojevi)... to moras drugacije da resis, ili da sve za ispis bacis u klasu human, ili da ispisujes van te klase...

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: class-e i nizovi21.01.2002. u 19:19 - pre 270 meseci
Citat:
ouros:

Hvala ti,sada radi.
Ako neko ima bolju ideju neka kaze, posto bi trebalo name da mi bude u private,ali ajde,ovo sad radi.

Pozdrav


Ako name treba da bude private, onda ti je najbolje da dodaš par (public) funkcija:
const char* GetName();
void SetName (const char* newName);
 
Odgovor na temu

ouros
Seattle, WA

Član broj: 342
Poruke: 275
*.uv2a.csupomona.edu

ICQ: 83493423


Profil

icon Re: class-e i nizovi21.01.2002. u 19:22 - pre 270 meseci


Ako name treba da bude private, onda ti je najbolje da dodaš par (public) funkcija:
const char* GetName();
void SetName (const char* newName);[/quote]

Izvini,ali nisam bas najbolje razumeo, nisam dugo radio u C++ a ovo je sad relativno novo za mene( mislim class-e) tako da bi mi trebala malo opsirnija pomoc.

Hvala
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7173 Profil

icon Re: class-e i nizovi21.01.2002. u 19:29 - pre 270 meseci
Pa da napravis "postapalice" - tj. funkcije koje ce ti dati pokazivac na neki private clan klase, i to moze lepo da se koristi... na primer

Code:

class a { 
public:

  char *daj_mi_pointer_na_clan();

protected:
  char szTemp[32];
}

char *a:daj_mi_pointer_na_clan()
{
  return szTemp;
}



Ovim postizes "relativno cist" stil programiranja, a opet mozes da se igras sa clanovima klase...

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: class-e i nizovi21.01.2002. u 19:34 - pre 270 meseci
Citat:
ouros:


Ako name treba da bude private, onda ti je najbolje da dodaš par (public) funkcija:
const char* GetName();
void SetName (const char* newName);


Izvini,ali nisam bas najbolje razumeo, nisam dugo radio u C++ a ovo je sad relativno novo za mene( mislim class-e) tako da bi mi trebala malo opsirnija pomoc.

Hvala[/quote]

OK. Recimo da imaš klasu:

Code:

class CHuman
{
private:
   char name[32];
public:
   const char* GetName() {return name;}
   void SetName (const char* newName) {strncpy(name, newName, 32);}
};


Znači, umesto da direktno menjaš i čitaš name, koristiš otprilike:


cout << human.GetName();
ili
human.SetName("NovoIme");

gde je human promenljiva tipa CHuman.
 
Odgovor na temu

ouros
Seattle, WA

Član broj: 342
Poruke: 275
*.uv2a.csupomona.edu

ICQ: 83493423


Profil

icon Re: class-e i nizovi21.01.2002. u 20:47 - pre 270 meseci
Hvala vam na odgovorima.

Uros
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: class-e i nizovi22.01.2002. u 10:55 - pre 270 meseci
Dobices veceras gotov kod za ono sto si rekao Urose. Ovde ti zapravo niko nije odgovorio na prosto pitanje... Kapiram ja to, jednostavna pitanja su uvek komplikovana za gurue - znam to po sebi. :) Uvek razmisljam na svoj nacin i shvatim uvek pogresno. Ovaj put mislim da nisam pogresio - ti zapravo zelis da imas fillArra() funkciju koja ce da napuni niz "ljudi" nekim vrednostima. Za to nam zapravo treba jedna metoda klase Human koja bi imala argumente name, trt, mrt i koju bi pozivali da "ubacimo" odredjene vrednosti u objekat, kad imam to, imamo bazu na kojoj cemo napisati fillArray(). fillArray() bi zapravo pozivala tu funkciju, nazovimo je recimo SetHumanValues() :)
Neko ce reci "Sto onda nismo napravili to kao konstruktor", ja na to odgovaram "Sto da ne, napisite" :)
Kad se vratim s posla veceras napisacu to i poslati kod.

Pozdrav

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7173 Profil

icon Re: class-e i nizovi22.01.2002. u 11:22 - pre 270 meseci
Forgive my display of ignorance, Leko - ali mislim da je Uros rekao da mu kod radi? Doduse, onaj stream input ima problema sa ENTER tasterom, ali u principu radi...

:)

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: class-e i nizovi22.01.2002. u 16:03 - pre 270 meseci
Ivane, ali to nije pitanje - momak se izgleda zaglavio kod pomenute fillArray() funkcije...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

ouros
Seattle, WA

Član broj: 342
Poruke: 275
*.uv2a.csupomona.edu

ICQ: 83493423


Profil

icon Re: class-e i nizovi22.01.2002. u 17:18 - pre 270 meseci
Citat:
leka:
Ivane, ali to nije pitanje - momak se izgleda zaglavio kod pomenute fillArray() funkcije...


U pravu ste oboje. Problem mi je bio fillArray funkcija jer to nisam kapirao kako se radi i onda sam cackao nesto i "kao" uspelo je. onda su mi Ivan i Dragi Tata dali par saveta. Code kao radi,ali me opet zezaju neke gluposti koje pokusavam sad da sredim.

Ako si Leko napisao code posalji ga molim te,posto ucim,da viidim da li ima neki bolji nacin od mog.

Hvala
Uros
 
Odgovor na temu

[es] :: C/C++ programiranje :: class-e i nizovi

[ Pregleda: 4364 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.