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

class , string - problemi kada se objektuo pristupa preko pokazivaca

[es] :: C/C++ programiranje :: class , string - problemi kada se objektuo pristupa preko pokazivaca

[ Pregleda: 4065 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Neznalica_sa_ugla
split

Član broj: 83282
Poruke: 390
*.adsl.net.t-com.hr.



Profil

icon class , string - problemi kada se objektuo pristupa preko pokazivaca30.08.2007. u 11:57 - pre 202 meseci
Vec bijaše neko slicno pitanje , pa i odgovori ali to se ipak ne odnosi na ovo ::
Naime ovaj kod radi kada stavim char * i to je ok , ali ne radi sa string ???

Code:


#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class  cStudent
{
public:
    cStudent(void);
    cStudent(string , string , string  , double);
            void Ispisi(void);
             void Upisi(string  , string ,string  , double );  
    cStudent * sljedi;
private:
    string ime;
    string prezime;
    string id_st;
    double prosijek;
    
};
cStudent::cStudent(void)
{
    ime=" ";
    prezime=" ";
    id_st=" ";
    this->prosijek=0;
}

cStudent::cStudent( string s1, string s2 ,string s3 ,double d1)
{
             ime=s1;
    prezime=s2;
    id_st=s3;
    prosijek=d1;
}

void cStudent::Upisi(string s1, string s2 ,string s3 ,double d1)
{     
    ime=s1;                     //   Ovdije   program puca   
    prezime=s2;
    id_st=s3;
    prosijek=d1;
}

void cStudent::Ispisi(void)
{
    cout <<   this->ime << " " << this->prezime <<"  " << this->id_st << "  " << this->prosijek << endl ;
    
    
    
}

void main(void)
{
             string v_ime;
    string  v_pre;
    string v_broj;
    double v_pros;
    cStudent *pst=NULL ;
    cStudent *pPocetak=NULL;
    cStudent *ptemp=NULL;
    int f=0;
    while(f<3) 
    {
        
        f++;
        cout <<  "Unesi Ime Studennta :"  ;
        cin >> v_ime;
        cout <<  endl;
        
        cout <<  "Unesi Prezime Studennta :"  ;
        cin >> v_pre;
        cout <<  endl;
        
        cout <<  "Unesi Broj Studennta :"  ;
        cin >> v_broj;
        cout <<  endl;
        
        
        cout <<  "Unesi prosijek  Studennta :"  ;
        cin >> v_pros;
        cout <<  endl;
        
        
        ptemp=pst;
        
        pst=(cStudent*) malloc(sizeof(cStudent));   
        
        if(ptemp!=NULL)
        {
            ptemp->sljedi=pst; 
        }
        
        
        if (pPocetak==NULL)
        {
            pPocetak=pst;
        }
        
        
        pst->Upisi(v_ime,v_pre,v_broj,v_pros);
        pst->sljedi=NULL;
               }
    pst=pPocetak;

    do
    {
                         pst->Ispisi() ;
                    pst=pst->sljedi;
    
    }while(pst!=NULL);
    
}



Samo mi nemojte reci " Vrati char , pa ce ti raditi " , HVALA


 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.demon.co.uk.



+4 Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca30.08.2007. u 12:32 - pre 202 meseci
Mene samo interesuje chemu ovo sluzhi:

Code:
pst=(cStudent*) malloc(sizeof(cStudent));   


 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca30.08.2007. u 12:45 - pre 202 meseci
Citat:

Mene samo interesuje chemu ovo sluzhi:

To je prazan prostor ;) nigde na vidiku


P.S. / O.T.
Šta je ispravno (ijekavicom): "prosijek" ili "prosjek" ? Ja bih reko ovo drugo...
 
Odgovor na temu

Neznalica_sa_ugla
split

Član broj: 83282
Poruke: 390
*.adsl.net.t-com.hr.



Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca30.08.2007. u 14:02 - pre 202 meseci

""To je prazan prostor ;) nigde na vidiku"

naravno moglo je sa new ali eto ja sam stariji covijek , pmi nekako ostalo !!!

" Šta je ispravno (ijekavicom): "prosijek" ili "prosjek" ? Ja bih reko ovo drugo.. " .

Ja ocekivao nesto o programu , a mene on pita sta je ispravno ::
EVO NEZNAM!!
Ja sam studirao u Beogradu , pa zaboravio (ije) , sada mi lakše (e) ,a i to se ovdije cesto mijenja , da mi je zgodno da ti spremim jednu knjigu iz mreža od Julina Ozegovica , da vidis sto je pravopis , "grijeske u prenosu pogrijesni bitova , mogu biti posebno grijeske , koje se ..... " ,
Uostalom mislio sam da c++ nije alergican na (ije) ili (e ) ...

 
Odgovor na temu

nikoladsp
nikola radovanovic
trenutno-developer
novi sad

Član broj: 5455
Poruke: 193
*.ADSL.neobee.net.



Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca31.08.2007. u 07:24 - pre 202 meseci
lepo ti ljudi rekose....

stavi
Code:
pst=new cStudent();

umesto
Code:
pst=(cStudent*) malloc(sizeof(cStudent));


tako da ti se kulturno pozove konstruktor , jer bez njega neces daleko stici .

[Ovu poruku je menjao nikoladsp dana 31.08.2007. u 08:41 GMT+1]
ja sam panker sa diplomom kod moje mame...
Prikačeni fajlovi
 
Odgovor na temu

Neznalica_sa_ugla
split

Član broj: 83282
Poruke: 390
*.adsl.net.t-com.hr.



Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca01.09.2007. u 00:12 - pre 202 meseci
Skidam kapu , radi sa new , ali zasto onda radi sa char i malloc , ako nije bio pozvan konstruktor ???
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca01.09.2007. u 03:40 - pre 202 meseci
Citat:
Neznalica_sa_ugla: Skidam kapu , radi sa new , ali zasto onda radi sa char i malloc , ako nije bio pozvan konstruktor ???


Kad budes shvatio zasto shvatices i razliku izmedju c++ i c-a.

Na primer pocni odavde:

http://wiki.answers.com/Q/What...lloc_and_new_other_than_syntax
http://www.codeguru.com/forum/showthread.php?t=401848
http://www.cplusplus.com/doc/tutorial/dynamic.html


Tko leti vrijedi
 
Odgovor na temu

perun_
Nemanja Andjelkovic
Banglades

Član broj: 151779
Poruke: 115
212.62.55.*

Sajt: 127.0.0.1


Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca14.10.2007. u 01:04 - pre 201 meseci
Moglo bi u nekom slucaju i sa malloc, ali se tu u C++ ne praktikuje. Ako bas hoces sa tim onda bi moralo stajati :
Code:

#include <stdlib.h>


Bar mi se cini da je tu, ali nisam siguran, davno bese...
Ne treba ciljati u metu vec metati u cilj
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.rcub.bg.ac.yu.



+9 Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca15.10.2007. u 10:57 - pre 201 meseci
new operator u C++-u je implementiran zapravo preko malloc-a, s tim što se usput poziva i konstruktor određene klase... Ako koristiš samo malloc, dobićeš određeno parče memorije koje nije inicijalizovano... Mogao si i da uradiš sledeće:


Code:


#include <iostream>
using namespace std;

class A
{
  public:
    A() {x = 13; y = 5;}
    int x, y;
};


int main()
{
  A *a = (A*)malloc(sizeof(A));
  a->x = 13;
  a->y = 5;

  // ovo je ekvivalentno inicijalizovanju objekta operatorom new (odnosno, instanciranju):

  // A *a = new A; Ili, da su x i y bili private, onda je bilo moguće isto uraditi sa bilo kojom javnom metodom klase.

  E sada, ovo je standardni operator new koji kao i svaki drugi može da se overloaduje globalno ili za svaku klasu posebno u zavisnosti od potreba.



Pozdrav! :)
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
195.252.119.*



+2790 Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca15.10.2007. u 12:11 - pre 201 meseci
A šta ako mu se klasa cStudent zakomplikuje, pa bude imao virtuelne metode? Kako će onda da inicijalizuje prostor rezervisan sa malloc?
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

1jedini
Dejan Milosavljevic
BG

Član broj: 102721
Poruke: 74
*.dynamic.sbb.co.yu.



Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca16.10.2007. u 11:47 - pre 201 meseci
Primer preuzet iz 3.7.3.1.13

Code:

void* operator new(size_t, void* p) { return p; }
struct X {
// ...
X(int);
˜X();
};
void f(X* p);
void g() // rare, specialized use:
{
char* buf = new char[sizeof(X)];
X* p = new(buf) X(222); 
f(p);
p->X::˜X(); //cleanup
}


Pogledati jos 5.3.4, 18.4 i 12.5.

i http://www.elitesecurity.org/t150132-Placement-new

[Ovu poruku je menjao 1jedini dana 16.10.2007. u 13:17 GMT+1]
AKA DDMM
 
Odgovor na temu

[es] :: C/C++ programiranje :: class , string - problemi kada se objektuo pristupa preko pokazivaca

[ Pregleda: 4065 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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