class CBase { int val; public CBase( int i = 0 )val(i) {} };
와 같이 정의돼있을때
CBase( 36 ) 라고 한다면 이 표현의 의미가 뭔지요? 보통은 CBase base(36) 이런식으로 instance를 만들자나요... 그런데 CBase( 36 ) 이 교묘한 표현이 어떻게 해석되는지 알고싶습니다.
CBase( int i = 0 ):val(i) {} 요건 다시 쓰면 CBase( int i = 0 ) { val = i; }
단지 생성자와 소멸자가 불리는 것만 하게 됩니다.
그 줄에서 생성되어 그 줄이 끝날때, 소멸됩니다.
void func( CBase a );
이런 함수가 있을 때,
func( CBase(1) );
이렇게 호출하면, CBase 생성, func 호출, CBase 소멸 순으로 됩니다.
---http://coolengineer.com
텍스트 포맷에 대한 자세한 정보
<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]
간단히 말해서
이겁니다. CBabe Temp; 하면 디폴트 값인 0이 멤버변수 value에 들어가고
CBase Temp(40); 이렇게 하면 지정한 값인 40이 멤버변수로 들어갑니다.
단지 생성자와 소멸자가 불리는 것만 하게 됩니다.그 줄에서 생성되
단지 생성자와 소멸자가 불리는 것만 하게 됩니다.
그 줄에서 생성되어 그 줄이 끝날때, 소멸됩니다.
void func( CBase a );
이런 함수가 있을 때,
func( CBase(1) );
이렇게 호출하면, CBase 생성, func 호출, CBase 소멸 순으로 됩니다.
---
http://coolengineer.com
댓글 달기