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

class , string - problemi kada se objektuo pristupa preko pokazivaca

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

[ Pregleda: 1076 | Odgovora: 10 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Neznalica_sa_ugla
split

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



Profil

icon class , string - problemi kada se objektuo pristupa preko pokazivaca30.08.2007. u 11:57

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


30.08.2007. u 11:57 

NastyBoy
Bojan Nastic
UK

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

Sajt: www.frd.co.uk


Profil

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

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



"The rational prisoner exploits the weak places, creates order from chaos: instead, collectives like the FSF vindicate their jailers by building cells almost compatible with the existing ones, albeit with more features."
30.08.2007. u 12:32 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca30.08.2007. u 12:45
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...

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
30.08.2007. u 12:45 

Neznalica_sa_ugla
split

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



Profil

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

""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 ne znam!!
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 ) ...

30.08.2007. u 14:02 

nikoladsp
nikola radovanovic
trenutno-developer
novi sad

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



Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca31.08.2007. u 07:24
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
31.08.2007. u 07:24 

Neznalica_sa_ugla
split

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



Profil

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

kiklop74
Darko Miletić
Buenos Aires

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



Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca01.09.2007. u 03:40
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
01.09.2007. u 03:40 

perun_
Nemanja Andjelkovic
Banglades

Član broj: 151779
Poruke: 109
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
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
14.10.2007. u 01:04 

Goran Arandjelovic
Goran Arandjelovic
Beograd

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

Jabber: goranche@elitesecurity.org


Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca15.10.2007. u 10:57
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! :)
15.10.2007. u 10:57 

Nedeljko
Nedeljko Stefanovic

Član broj: 314
Poruke: 1946
195.252.119.*



Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca15.10.2007. u 12:11
A šta ako mu se klasa cStudent zakomplikuje, pa bude imao virtuelne metode? Kako će onda da inicijalizuje prostor rezervisan sa malloc?
Nedeljko Stefanovic
15.10.2007. u 12:11 

1jedini
Dejan Milosavljevic
BG

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

Sajt: www.ddmrm.com


Profil

icon Re: class , string - problemi kada se objektuo pristupa preko pokazivaca16.10.2007. u 11:47
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
16.10.2007. u 11:47 

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

[ Pregleda: 1076 | Odgovora: 10 ]

Postavi temu Odgovori

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