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

Swap objekata klase string?

[es] :: C++ programiranje :: C++ za početnike :: Swap objekata klase string?

[ Pregleda: 321 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fidelito_Castro
Cik pogodi
Tamo daleko...

Član broj: 143557
Poruke: 67
*.eunet.yu.



Profil

icon Swap objekata klase string?07.04.2008. u 23:25

Zanima me da li moze funkciji da se pozove funkcija po adresi(call by address) kada je u pitanju objekat neke klase.

Na primer: probao sam da prosledim objekat klase string,po vrednosti i po referenci.I to funkcionise bez problema.
Medjutim kada sam pokusao da prosledim objekat klase string po adresi,prevodioc ne prijavljuje gresku ali ipak tu nesto ne stima.

Evo koda:

Code:

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

void Zameni(string*, string*);

int main(int argc, char *argv[])
{
    string linija,
           red;
    
    //Unos podataka sa tastature
    cout<<"Unesite prvi red: ";
    getline(cin, linija);
    
    cout<<"Unesite drugi red: ";
    getline(cin, red);
    
    
    //Pre zamene objekata klase string
    cout<<"Pre zamene!!!"<<endl;
    cout<<"-------------"<<endl;
    cout<<"Linija : "<<linija<<endl;
    cout<<"Red    : "<<red<<endl;
    
    
    //Po vrednosti OK!!!
    //Po referenci OK!!!
   //Poziv funkcije po adresi ?????
    Zameni(&linija, &red);
    
    //Nakon zamene objekata klase string
    cout<<endl;
    cout<<"Nakon zamene!!!"<<endl;
    cout<<"---------------"<<endl;
    cout<<"Linija: "<<linija<<endl;
    cout<<"Red   : "<<red<<endl;
    
    cout<<endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
//Definicija funkcije za zamenu objekata klase string
void Zameni (string* tekst1, string* tekst2)
{
     string* temp;
     *temp = *tekst1;
     *tekst1 = *tekst2;
     *tekst2 = *tekst1;
     return;
}


07.04.2008. u 23:25 

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 561
91.148.115.*

Sajt: www.eurora3d.com


Profil

icon Re: Swap objekata klase string?08.04.2008. u 00:34
Sa ovim kodom nisi ni mogao da to uradis i da se tako radi
Code:

     string* temp;
     *temp = *tekst1;
     *tekst1 = *tekst2;
     *tekst2 = *tekst1; // ovde bi po logici trebalo temp umesto text1 jer je u text1 jedan vec dodeljeno text2 pa bi bilo text2=text2
     return;

Pogledaj kod ispod. Napisao sam ti i kratke komentare.
Pozdrav
Code:

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

void Zameni(string*, string*);

int main(int argc, char *argv[])
{
    string* linija; // samo pointeri mogu da menjaju adrese
    string* red; // samo pointeri mogu da menjaju adrese
    linija = new string(); // adresa dodeljena dinamicki
    red = new string(); // adresa dodeljena dinamicki

    //Unos podataka sa tastature
    cout<<"Unesite prvi red: ";
    getline(cin, *linija); //menjano

    cout<<"Unesite drugi red: ";
    getline(cin, *red); //menjano


    //Pre zamene objekata klase string
    cout<<"Pre zamene!!!"<<endl;
    cout<<"-------------"<<endl;
    cout<<"Linija : "<<*linija<<endl; //menjano
    cout<<"Red    : "<<*red<<endl; //menjano


    //Po vrednosti OK!!!
    //Po referenci OK!!!
    //Poziv funkcije po adresi ?????
    Zameni(linija, red);

    //Nakon zamene objekata klase string
    cout<<endl;
    cout<<"Nakon zamene!!!"<<endl;
    cout<<"---------------"<<endl;
    cout<<"Linija: "<<*linija<<endl; //menjano
    cout<<"Red   : "<<*red<<endl; //menjano

    cout<<endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}
//Definicija funkcije za zamenu objekata klase string
void Zameni (string* tekst1, string* tekst2)
{
    string temp1=*tekst1; // na sta pokazuje ovde
    *tekst1 = *tekst2; // menjamo sadrzaj prvog i
    *tekst2 = temp1; //   drugog pokazivaca
    //sadrzaj (ono na sta pokazuje) menjamo sa *pokazivac
    return;
}

char $[12] = "0D3 aroruE0";char* $$ = &$[10];
while(*(--$$)!='0')
cout << (char)*$$;
08.04.2008. u 00:34 

Fidelito_Castro
Cik pogodi
Tamo daleko...

Član broj: 143557
Poruke: 67
*.eunet.yu.



Profil

icon Re: Swap objekata klase string?08.04.2008. u 06:51
Hvala na pomoci!
08.04.2008. u 06:51 

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 561
91.148.115.*

Sajt: www.eurora3d.com


Profil

icon Re: Swap objekata klase string?08.04.2008. u 23:38
Nista ... i drugi put :)
char $[12] = "0D3 aroruE0";char* $$ = &$[10];
while(*(--$$)!='0')
cout << (char)*$$;
08.04.2008. u 23:38 

[es] :: C++ programiranje :: C++ za početnike :: Swap objekata klase string?

[ Pregleda: 321 | Odgovora: 3 ]

Postavi temu Odgovori

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