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

Swap objekata klase string?

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

[ Pregleda: 1599 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fidelito_Castro
Fidelito_Castro
Subotica

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



Profil

icon Swap objekata klase string?07.04.2008. u 23:25 - pre 195 meseci
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;
}


 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



+7 Profil

icon Re: Swap objekata klase string?08.04.2008. u 00:34 - pre 195 meseci
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;
}

 
Odgovor na temu

Fidelito_Castro
Fidelito_Castro
Subotica

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



Profil

icon Re: Swap objekata klase string?08.04.2008. u 06:51 - pre 195 meseci
Hvala na pomoci!
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



+7 Profil

icon Re: Swap objekata klase string?08.04.2008. u 23:38 - pre 195 meseci
Nista ... i drugi put :)
 
Odgovor na temu

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

[ Pregleda: 1599 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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