Witam! Mam problem ze zmianą wartości zmiennej pewnej klasy wykorzystując do tego inną klasę. Otóż chodzi o to, że zmienna "a" klasy Class1 ma przypisaną wartość 0, natomiast przy wywoływaniu konstruktora klasy Class2 ta zmienna moim zdaniem powinna przyjąć wartość 1. Niestety tak nie jest, i zmienna ta ma nadal wartość 0. Mianowicie n.getFirst() zwraca 0. Nie wiem w czym leży problem ani jak to naprawić. Klasy te oczywiście nie mają tutaj żadnego sensu, ale chodzi o sam fakt problemu. Z góry dziękuję za pomoc :)
#pragma once
#include <list>
using namespace std;
class Class1
{
int a;
friend class Class2;
public:
Class1(int a) : a(a) {};
int getFirst() { return a; }
};
#pragma once
#include "Class1.h"
#include <list>
using namespace std;
class Class2
{
public:
Class2(list<Class1>& k)
{
Class1 v(1);
list<Class1> L = { v };
k = L;
}
};
#include "Class1.h"
#include "Class2.h"
#include <iostream>
using namespace std;
int main()
{
Class1 n(0);
list<Class1> L = { n };
Class2 y(L);
cout << n.getFirst() << endl;
system("pause");
return 0;
}