, 왜 내가 잘못 답변을 얻을 않지만 :C++ 생성자 : 어떤이 코드에 문제가 있습니다 쓰레기 const를 참조 초기화가
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
제발 도와주세요, 고마워요
답장을 보내 주셔서 감사합니다. 그 결과를 설명합니다. 하지만 b 초기화하는 방법을 알고 있습니다? –
@VivekBasappa : 의도 한 것처럼 일부 변수를 참조하십시오. 아니면 그냥'a'와 같은 값으로 만드십시오. –
@VivekBasappa 그것은'int'이므로, 아마 그것이 참조가되는 것을 원하지 않을 것입니다. 'int'를 복사하는 것과 같은 코딱지는 비싸다. – Borealid