Compunerea obiectelor

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++
Post Reply
stelian_2681
Junior
Junior
Posts: 36
Joined: 24 Jun 2013, 23:25
Judet: Olt

Compunerea obiectelor

Post by stelian_2681 » 29 Jul 2017, 23:25

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



Viorel
Microsoft MVP
Microsoft MVP
Posts: 287
Joined: 13 Jul 2007, 12:26

Re: Compunerea obiectelor

Post by Viorel » 30 Jul 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ă ‘&’:

Code: Select all

FirstClass & getBox1()
{
   return box1;
}

stelian_2681
Junior
Junior
Posts: 36
Joined: 24 Jun 2013, 23:25
Judet: Olt

Re: Compunerea obiectelor

Post by stelian_2681 » 30 Jul 2017, 14:54

Multumesc !

Post Reply