У меня есть класс с именем Person, который имеет имя, 4
переменные a, b, c, d и значение t
, которое добавляет a
, b
, c
, d
вверх.
Вот код, описывающий мою проблему:
#include <iostream>
using namespace std;
class person {
public:
string name;
int a;
int b;
int c;
int d;
int t = a + b + c + d;
};
int main() {
{
person p;
cin >> p.name >> p.a >> p.b >> p.c >> p.d;
cout << p.t << '\n'; // garbage
}
{
person p;
string s;
int A, B, C, D;
cin >> s >> A >> B >> C >> D;
p = {s, A, B, C, D};
cout << p.t << '\n'; // prints the sum
}
return 0;
}
В первом блоке предположим, что я получаю "Энди", 1, 2, 3, 4 от пользователя, при печати t
, он печатает значение мусора. Во втором блоке он печатает t
= 10
, что я и ожидал, поведение первого блока неожиданно, я не знаю, почему это происходит.