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
간단히 말해서
CBase( int i = 0 ):val(i) {} 요건 다시 쓰면 CBase( int i = 0 ) { val = i; }이겁니다. CBabe Temp; 하면 디폴트 값인 0이 멤버변수 value에 들어가고
CBase Temp(40); 이렇게 하면 지정한 값인 40이 멤버변수로 들어갑니다.
단지 생성자와 소멸자가 불리는 것만 하게 됩니다.그 줄에서 생성되
단지 생성자와 소멸자가 불리는 것만 하게 됩니다.
그 줄에서 생성되어 그 줄이 끝날때, 소멸됩니다.
void func( CBase a );
이런 함수가 있을 때,
func( CBase(1) );
이렇게 호출하면, CBase 생성, func 호출, CBase 소멸 순으로 됩니다.
---
http://coolengineer.com