Page 1 of 1

Compunerea obiectelor

Posted: 29 Jul 2017, 23:25
by stelian_2681
In urmatorul cod nu inteleg de ce nu imi este afisata valoarea lui x.

Code: Select all

#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;
}

Re: Compunerea obiectelor

Posted: 30 Jul 2017, 09:59
by Viorel
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ă ‘&’:

Code: Select all

FirstClass & getBox1()
{
   return box1;
}

Re: Compunerea obiectelor

Posted: 30 Jul 2017, 14:54
by stelian_2681
Multumesc !