soen.kr의 레퍼런스에 대해 설명한 부분에 따르면
const레퍼런스 타입이 형식인수이면
const타입이 아닌 이스턴스는 대입하거나 초기화하는 것은 불가능하다고 보는데
Temp(const Temp& t); //const타입의 객체만 대입가능
클래스에서 이런 복사생성자를 호출해서 초기화 할 때
왜 const객체가 아닌데도 초기화 될까요?
원래라면 오류가 발생해야하지 않나요?
int a = 1; const int &b = a;
되죠?
네. 잘 되긴하는데 제가 본 설명과는 약간 다른것 같아서..
.
복사 생성자로 전달되는 인수는 상수일 수도 있고 아닐 수도 있는데 내부에서 읽기만 하므로 개념적으로 상수 속성을 주는 것이 옳다.
복사 생성자를 예로 든 이유는 단순히 문제 설명을 위한것이며 제가 의문인 파트는 c고급에 있는 const설명 자료입니다.
Temp가 const Temp로 암시적 형변환이 안 될것 같다는 얘긴가요?
그거라면 여기에 관련 문법이 있긴 한데요. (읏.. 올리고 보니 포인터에 대한 설명이네요. 하지만 포인터가 아닌 일반 타입도 타입 한정자(ex. const)를 추가하는 건 암시적 형변환이 가능하다고 알고 있어요)
쓰신 코드가 소엔의 어느 설명과 맞지 않는 건지 잘 모르겠네요...
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
int a = 1; const int &b =
int a = 1;
const int &b = a;
되죠?
네. 잘 되긴하는데 제가본 설명과는 약간 다른것
네. 잘 되긴하는데 제가 본 설명과는 약간 다른것 같아서..
.
.
살짝 의문인 부분이..
딱히 그러진 않지 않나요. soen.kr에서
라는 부분이 있잖아요.
복사 생성자를 예로 든 이유는 단순히 문제 설명을
복사 생성자를 예로 든 이유는 단순히 문제 설명을 위한것이며 제가 의문인 파트는 c고급에 있는 const설명 자료입니다.
질문을 잘 이해한 건진 모르겠지만...
Temp가 const Temp로 암시적 형변환이 안 될것 같다는 얘긴가요?
그거라면 여기에 관련 문법이 있긴 한데요.
(읏.. 올리고 보니 포인터에 대한 설명이네요. 하지만 포인터가 아닌 일반 타입도 타입 한정자(ex. const)를 추가하는 건 암시적 형변환이 가능하다고 알고 있어요)
쓰신 코드가 소엔의 어느 설명과 맞지 않는 건지 잘 모르겠네요...
댓글 달기