그러나 인스턴스 변수와 이름이 같으므로 생성자에서 x를 초기화 할 수 없습니다. 인수의 이름을 변경하는 것 이외의 다른 방법이 있습니까?
매개 변수 이름을 변경하십시오! 당신은 단지 코드를 읽기가 어렵게되는 지역으로 매개 변수 이름을 동일 makeing으로
class MyClass
{
int x;
public:
MyClass(int xInitVal);
};
MyClass::MyClass(int xInitVal)
:x(xInitVal)
{ // Don't assign x here.
}
. 하지 마십시오. 거의 모든 스타일 가이드는 매개 변수를 멤버와 같은 이름으로 만들지 말라고 알려줍니다. 상식의 작은 비트 바랍니다.
this->x = x;
일자리를 부탁하지 마십시오 대답 모든 사람들에게
< 호언 장담 > .맙소사, 너는 고의적으로 문제를 일으키려고하고있다.
끔찍한 사실은 이것이 나쁜 생각이라는 것을 알려주는 것이 아닙니다.
예 기술적으로 허용되지만 코드 전체를 읽기 쉽도록 유지하고 이전 작성자의 의도를 디코딩하는 이국적인 기술로 만들지 않는 것이 중요합니다.
</호언 장담 >
오류가 발생했습니다. 컴파일러는 정당하게 불평합니다. 코드를 수정하십시오. – dirkgently
음 ... 매개 변수의 이름을 바꾸시겠습니까? –