Мне интересно, что я делаю неправильно здесь. Я создаю класс a и класс b, устанавливая b равным a, устанавливая значение a и печатая это значение b. Но значение b не меняется.C++ Класс: Передайте по ссылке
Вот мой код:
#include <iostream>
using namespace std;
struct Node
{
int x;
int y;
};
class Ball
{
public:
Ball();
Ball(int r, int x, int y);
int GetR();
void SetR(int);
int GetX();
void SetX(int);
int GetY();
void SetY(int);
private:
int m_r;
int m_x;
int m_y;
};
int main(int argc, char* argv[])
{
Ball a;
Ball b;
b = a;
a.SetR(10);
cout << "a.GetR() : " << a.GetR() << endl;
cout << "b.GetR() : " << b.GetR() << endl;
return 0;
}
Ball::Ball()
{
m_r = 0;
m_x = 0;
m_y = 0;
}
Ball::Ball(int r, int x, int y)
{
m_r = r;
m_x = x;
m_y = y;
}
int Ball::GetR()
{
return m_r;
}
void Ball::SetR(int r)
{
m_r = r;
}
int Ball::GetX()
{
return m_x;
}
void Ball::SetX(int x)
{
m_x = x;
}
int Ball::GetY()
{
return m_y;
}
void Ball::SetY(int y)
{
m_y = y;
}
Вот мой терминальный вывод:
a.GetR() : 10
b.GetR() : 0
Может кто-нибудь объяснить мне, как работает класс прохода по ссылке в C++ и почему это happeneing?
Заранее спасибо.
Добро пожаловать в * значение семантика *. – dyp
Чтобы продемонстрировать свою проблему, не можете ли вы просто сделать код короче? Каким образом относится к классу 'Node' и к ним относятся Set/Get Y/X? –