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

- Posts: 36
- Joined: 24 Jun 2013, 23:25
- Judet: Olt
Post
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;
}
-
Viorel
- Microsoft MVP

- Posts: 293
- Joined: 13 Jul 2007, 12:26
Post
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;
}