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

problem sa izvedenom klasom

[es] :: C/C++ programiranje :: problem sa izvedenom klasom

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

drekavac007
Drekavac
Morava grad

Član broj: 57693
Poruke: 25
77.46.200.*



Profil

icon problem sa izvedenom klasom29.08.2007. u 02:26 - pre 173 meseci
Pozdrav svima, evo jednog problema koji pokusavam resiti, nesto nije u redu sa klasom ili pokazivacima, cilj je praviti police sa nizom knjiga... ali po unosenju 3. knjige win ljubazno moli da se microsoftu posalje informacija o problemu... bla bla...
prevodioc ne javlja nijedno upozorenje niti gresku... moze li neka strucna pomoc, hvala!

Code:

//main.cpp
#include "polica.h"
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    int f=10;
    Polica e;
    e.kreiraj(f);
}




//knjiga.h
class Knjiga {
    int x;
public:
    Knjiga(int xx=0) {x=xx;}
    int prikaziX() const {return x;}
    void citaj();
    void pisi() const;
};



//knjiga.cpp
#include "knjiga.h"
#include <iostream>
using namespace std;

void Knjiga::pisi() const{
    cout<<x<<endl;
}

void Knjiga::citaj() {
    int x1;
    cout<<"broj knjige:";
    cin>>x1;
    x=x1;
}



//polica.h
#include "knjiga.h"

class Polica:public Knjiga {
    Knjiga** niz;
    int brp, kap;
    void brisi() {delete []niz;}
public:
    Polica(int k=10)
    { niz=new Knjiga* [kap=k]; }
    ~Polica() {brisi();}

    int kreiraj(int i) {
     Knjiga** niz=new Knjiga*[i];
     for(int m=0; m<i; m++)
         niz[m]->citaj();
    }


};


[Ovu poruku je menjao X Files dana 02.09.2007. u 21:34 GMT+1]
DrekavaC
 
Odgovor na temu

yaelo
Rajko Vojnović
Beograd

Član broj: 78087
Poruke: 153
*.smin.sezampro.yu.



+9 Profil

icon Re: problem sa izvedenom klasom29.08.2007. u 15:45 - pre 173 meseci
Puno toga ti ne valja sa klasom Polica. Zašto je nasledjuješ iz Knjiga. Polica nije Knjiga. Umesto Knjiga** niz koristi std::vector<Knjiga>. Zatim funkcija Brisi oslobadja samo niz koji je ustvari niz pointera. A šta je sa pointerima u nizu niz.Takodje imaš problem sa funkcijom kreiraj. Probaj ovako:

Code:

class Polica {
    std::vector<Knjiga> niz;

public:
    Polica(int k=10) : niz (k) {}

   void kreiraj() {
        for (std::vector<Knjiga>::iterator iter = niz.begin(); iter < niz.end(); ++iter) {
            iter->citaj();
        }
    }
};



[Ovu poruku je menjao yaelo dana 29.08.2007. u 18:21 GMT+1]
 
Odgovor na temu

drekavac007
Drekavac
Morava grad

Član broj: 57693
Poruke: 25
77.46.225.*



Profil

icon Re: problem sa izvedenom klasom30.08.2007. u 18:37 - pre 173 meseci
Evo izmenio sam malo na svoju ruku klasu Polica i funkciju kreiraj, da li sada postoji neki nacin da napravim funkciju(ispisi) koja ce izlistati niz knjiga....
aauuuuu bre zbuni me sad sa tim vektorima zelen sam ja za to al proucicu.
Code:

//polica.h
#include "knjiga.h"

class Polica{
    int brp;

public:
    Knjiga* nz;
    Polica(int k=10)
    { nz=new Knjiga [brp=k]; }
    ~Polica() {brisi();}

    int kreiraj(int m) {
     Knjiga niz[m];
     for(int i=0; i<m; i++)
         niz[i].citaj();
    }

    

    void brisi() {delete []nz;}

};


EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:

[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]

Sad će ti možda neko i pogledati kod...



[Ovu poruku je menjao X Files dana 02.09.2007. u 21:36 GMT+1]
DrekavaC
 
Odgovor na temu

drekavac007
Drekavac
Morava grad

Član broj: 57693
Poruke: 25
77.46.225.*



Profil

icon Re: problem sa izvedenom klasom02.09.2007. u 20:18 - pre 173 meseci
niko...???
DrekavaC
 
Odgovor na temu

nikoladsp
nikola radovanovic
trenutno-developer
novi sad

Član broj: 5455
Poruke: 193
*.ns.ac.yu.



Profil

icon Re: problem sa izvedenom klasom03.09.2007. u 09:29 - pre 173 meseci
evo ti predlog resenja (ako sam dobro razumeo problem) u atachment-u.

imas klasu CBook koja opisuje knjigu i CBookshelf koja predstavlja policu koja sadrzi knjige.
ne bi trebalo da kreiras knjigu(e) u okviru police, niti da se mucis sa dinamickom alokacijom (koristi STL, sigurnije je i jednostavnije).
pogledaj sors, pa pitaj ako ti nesto nije jasno

poz
ja sam panker sa diplomom kod moje mame...
Prikačeni fajlovi
 
Odgovor na temu

drekavac007
Drekavac
Morava grad

Član broj: 57693
Poruke: 25
77.46.225.*



Profil

icon Re: problem sa izvedenom klasom04.09.2007. u 01:33 - pre 173 meseci
Skapirao sam o cemu se radi i ovo bi moglo da bude resenje, hvala na pomoci!!! Ja sam pokusavao da Policu realizujem kao niz objekata tipa Knjiga ( ono niz[n] ) nekako mi je to najlogicnije da uradim pa cu i pored ovog tvog resenja probati da to napravim sa nizom, mada se i ne trudim fanaticno ali bice valjda za par dana :) u svakom slucaju svaka pomoc je opet dobrodosla... pozdrav.
DrekavaC
 
Odgovor na temu

drekavac007
Drekavac
Morava grad

Član broj: 57693
Poruke: 25
77.46.224.*



Profil

icon Re: problem sa izvedenom klasom07.09.2007. u 17:09 - pre 173 meseci
resenje:
Code:
   //main.cpp
#include "polica.h"
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    int f=10;
    int ff=8;
    Polica e(f);
    Polica ee(ff);
  
    e.pisi();
    ee.pisi();
}

Code:
   //knjiga.h
class Knjiga {
    int x;
public:
    Knjiga(int xx=0) {x=xx;}
    int prikaziX() const {return x;}
    void citaj();
    void pisi() const;
};

Code:
   //knjiga.cpp
#include "knjiga.h"
#include <iostream>
using namespace std;

void Knjiga::pisi() const{
    cout<<x<<endl;
}

void Knjiga::citaj() {
    int x1;
    cout<<"broj knjige:";
    cin>>x1;
    x=x1;
}

Code:
   //polica.h
#include "knjiga.h"

class Polica{
    int brp;

public:
    Polica();
    Polica(int n);

    int get_brp(void) { return brp; }    

    void pisi();

};

Code:
   //polica.cpp
#include "polica.h"
#include <iostream>

Polica::Polica() {
   brp=1;
   niz=new Knjiga[0];
   niz[0]=0;
}

Polica::Polica(int n) {
   brp=n;
   niz=new Knjiga[n];
   for(int i=0; i<n; i++)
      niz[i].citaj;
}

void Polica::pisi() {
   int d=brp;
   for(int i=0; i<d; i++)
      niz[i].pisi();
}

klasa nije ni trebala biti izvedena...
fali destruktor al me mrzi
moze lock...

[Ovu poruku je menjao drekavac007 dana 07.09.2007. u 18:27 GMT+1]
DrekavaC
 
Odgovor na temu

[es] :: C/C++ programiranje :: problem sa izvedenom klasom

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

Postavi temu Odgovori

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