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

Kako da prosledim matricu objekata kao argument?

[es] :: C/C++ programiranje :: Kako da prosledim matricu objekata kao argument?

[ Pregleda: 3004 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

LightBow
London

Član broj: 4829
Poruke: 158
*.bulldogdsl.com.



+1 Profil

icon Kako da prosledim matricu objekata kao argument?14.01.2006. u 11:30 - pre 222 meseci
Napravio sam klasu Supplier i u main programu deklarisao niz:
Code:
Supplier* suppliers[10];

zatim sam napunio matricu s 10 objekata.
Sada mi je potrebno da pozovem funkciju supMask() iz drugog fajla, mask.cpp, gde sam je definisao ovako:

Code:
void supMask(Supplier* suppliers[]) {
    for(int i=0; i<10;i++) {
        cout<<suppliers[i]->getName()<<endl;
        }
}

a pozivam iz main fajla ovako:
Code:
supMask(suppliers[10]);

Kompajlira ok, ali mi daje gresku pri linkovanju:
error LNK2001: unresolved external symbol "void __cdecl supMask(class Supplier *)
U cemu je greska?
 
Odgovor na temu

dado_k
Varaždin

Član broj: 57122
Poruke: 300
*.cmu.carnet.hr.

ICQ: 326865106
Sajt: radim baš novi sajt u ph..


Profil

icon Re: Kako da prosledim matricu objekata kao argument?14.01.2006. u 12:27 - pre 222 meseci
prouči malo pointere...
 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
*.broadband.blic.net.



+2 Profil

icon Re: Kako da prosledim matricu objekata kao argument?14.01.2006. u 13:46 - pre 222 meseci
Pokusaj ovako:

U kodu da prosledis:

Code:

supMask((Supplier*)suppliers);



Code:

void supMask (Supplier* psup) // ocekuje pointer na Supplier klasu, ne zna koliko objekat a ce biti u nizu
{
    for(int i=0; i<10;i++) {
        cout<<suppliers[i]->getName()<<endl;
        }
}



 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.61.eunet.yu.



+9 Profil

icon Re: Kako da prosledim matricu objekata kao argument?14.01.2006. u 17:06 - pre 222 meseci
A i ako je to niz tvojih objekata, pa i prostih tipova, napiši neku wrapper klasu... nešto kao "MyObjectsArray" pa funkciji samo taj objekat prosledi i nemaš brige oko nizova i matrica... Može i overload operatora i sl. Zavisi koliko je veliko to što pišeš...dakle, od potreba.
 
Odgovor na temu

LightBow
London

Član broj: 4829
Poruke: 158
*.bulldogdsl.com.



+1 Profil

icon Re: Kako da prosledim matricu objekata kao argument?14.01.2006. u 23:23 - pre 222 meseci
Kada stavim Ljubetov kod, i plus u definiciji funkcije promenim "->" u ".", onda kompajlira, ali dobijem run-time gresku. Da li bi neko znao da mi objasni u cemu je greska, zasto ni moj originalni kod nije radio?
Hvala
 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
*.broadband.blic.net.



+2 Profil

icon Re: Kako da prosledim matricu objekata kao argument?15.01.2006. u 16:59 - pre 222 meseci
Nisam obracao paznju na sadrzaj supMask.

U svakom slucaju evo ti primjer koda koji radi:

Code:

#include <iostream>
using namespace std;

class Supplier 
{
public:
  Supplier() { 
    strcpy(name, "name not set!");
  }
  ~Supplier() {
  }



  void setName(char * namex) 
  {
        if (name) strcpy(name, namex);
  };
  
  char * getName() {
    return     name;
  }
  
protected:
char name[50];
   
};


int main(int argc, char* argv[])
{    int x = 0;
    char name[20];
    Supplier * suppliers = new Supplier[10];

    for (x = 0; x<10; x++) {
        sprintf((char*)name, "supplier No.%d", x);
        suppliers[x].setName(name);
    }

    
    for (x = 0; x<10; x++) {
        cout<<suppliers[x].getName()<<endl;
    }
    
       delete [] suppliers;
    return 0;
}



Program moze da ti puca i na nekim drugim mjestima.

Lj.
 
Odgovor na temu

LightBow
London

Član broj: 4829
Poruke: 158
*.bulldogdsl.com.



+1 Profil

icon Re: Kako da prosledim matricu objekata kao argument?18.01.2006. u 05:31 - pre 222 meseci
Hvala Ljube, ali proradio je moj originalni kod kada sam pozvao funkciju sa
supMask(suppliers)
bez [].
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kako da prosledim matricu objekata kao argument?

[ Pregleda: 3004 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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