C++ 소스를 보던중에 다음과 같은 코드가 있네요.
위의 time하고 아래의 time 이 구분되어 쓰여질 수 있나요?
그리고 첫번째 time 함수에서 time() 뒤의 const 는 어떤 의미가 있나요?
class xxx { ..... inline const float& time() const { return mTime; } inline float& time() { return mTime; } .... }
뒤의 const는 이 함수는 멤버 변수를 변경하지 않는 다는 것입니다. 두번째로 두개의 함수가 필요한 이유는 만약 const가 들어가지 않는 함수만 있다면
const xxx aaa;
a.time() // 에러..
aaa는 const로 한정이 되어있기때문에 const 멤버함수를 제외하곤 불리어 질 수 없습니다. 그렇기에 따로 const를 넣어두는 것입니다.
C++, 그리고 C++.... 죽어도 C++
멤버함수 뒤에 const는 "이 멤버 함수가 내부에서 맴버변수를 바꾸지 못한다"를 의미합니다. 그런데 예외적으로 내부에서 값을 꼭 바꾸고 싶은 변수는 mutable을 쓰지요. mutable int i; 이렇게..
그리고 같은 버전이 2개가 있는 이유는 xxx클래스가 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]
뒤의 const는 이 함수는 멤버 변수를 변경하지 않는 다는 것입니다.
뒤의 const는 이 함수는 멤버 변수를 변경하지 않는 다는 것입니다.
두번째로 두개의 함수가 필요한 이유는 만약 const가 들어가지 않는 함수만 있다면
const xxx aaa;
a.time() // 에러..
aaa는 const로 한정이 되어있기때문에 const 멤버함수를 제외하곤
불리어 질 수 없습니다. 그렇기에 따로 const를 넣어두는 것입니다.
C++, 그리고 C++....
죽어도 C++
멤버함수 뒤에 const는 "이 멤버 함수가 내부에서 맴버변수를 바꾸
멤버함수 뒤에 const는
"이 멤버 함수가 내부에서 맴버변수를 바꾸지 못한다"를 의미합니다.
그런데 예외적으로 내부에서 값을 꼭 바꾸고 싶은 변수는 mutable을 쓰지요. mutable int i; 이렇게..
그리고 같은 버전이 2개가 있는 이유는 xxx클래스가 const로 함수의 객체로 넘어갈때 이 멤버 함수를 호출하기 위해서입니다.
댓글 달기