что не так с этим кодом, почему я получаю неправильный ответ:
class X
{
private:
const int a;
const int& b;
public:
X(): a(10) , b(20)
{
// std::cout << "constructor : a " << a << std::endl;
// std::cout << "constructor : b " << b << std::endl;
}
void display()
{
std::cout << "display():a:" << a << std::endl;
std::cout << "display():b:" << b << std::endl;
}
};
int
main(void)
{
X x;
x.display();
return 0;
}
Приведенный выше код выдаст мне результат как
display():a:10
display():b:1104441332
Но если я удалю закомментированный2 строки внутри конструктора по умолчанию, он дает мне правильный результат, который
constructor : a 10
constructor : b 20
display():a:10
display():b:20
, пожалуйста, помогите, спасибо