Compunerea obiectelor

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++

Compunerea obiectelor

Mesajde stelian_2681 » 29 Iul 2017, 23:25

In urmatorul cod nu inteleg de ce nu imi este afisata valoarea lui x.

Cod: Selectaţi tot
#include <iostream>
using namespace std;

class FirstClass
{
private:
    int x;
public:
    void setX(int x)
    {
        this->x = x;
    }
    int getX()
    {
        return x;
    }
};

class SecondClass
{
private:
    FirstClass box1;
public:
    FirstClass getBox1()
    {
        return box1;
    }
};

int main()
{
    SecondClass box2;

    box2.getBox1().setX(163);
    cout << "\n x = " << box2.getBox1().getX() << endl;
    return 0;
}
stelian_2681
Junior
Junior
 
Mesaje: 32
Membru din: 24 Iun 2013, 23:25
Judet: Olt

Re: Compunerea obiectelor

Mesajde Viorel » 30 Iul 2017, 09:59

Cred că getBox1 returnează o copie a membrului box1. Operația setX se aplică asupra copiei.

Pentru a returna o referință spre obiectul original, adaugă ‘&’:

Cod: Selectaţi tot
FirstClass & getBox1()
{
   return box1;
}
Viorel
Microsoft MVP
Microsoft MVP
 
Mesaje: 282
Membru din: 13 Iul 2007, 12:26

Re: Compunerea obiectelor

Mesajde stelian_2681 » 30 Iul 2017, 14:54

Multumesc !
stelian_2681
Junior
Junior
 
Mesaje: 32
Membru din: 24 Iun 2013, 23:25
Judet: Olt


Înapoi la Limbajul C++

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator

cron