이상한 파라미터

조금 예전의 코드를 보다가 나중에 검토를 해 보자는 주석이 달린 코드를 보았다.
그리고 그 때 제시된 문제를 간략하게 만들어 보았다
.

#include <stdio.h>

class CRenderMode
{
public:
        explicit CRenderMode(int mode)
        {
               printf("mode = %d\n", mode);
        }
};

int main()
{
        int mode = 0;

        // 아래 것은 출력 안 됨.
        CRenderMode state0( int(mode) );

        // 나머지 3개는 출력 됨
        CRenderMode state_( int((int)mode) );
        CRenderMode state1( int(mode+0) );
        CRenderMode state2( (int)mode );

        return 0;
}

생성자에 파라미터를 넣을 때 int(mode) 라고 하니 원했던 생성자가 안 불렸다는 것인데, 마치 파라미터 없는 생성자를 부를 때 실수로 CRenderMode state0(); 라고 했을 때와 상황이 같다. 이것도 뭔가 스펙이 있는 듯 하지만, 정확한 이유는 모르겠다.

 

 

Posted by 안영기

2010/04/25 12:45 2010/04/25 12:45
Response
0 Trackbacks , 5 Comments
RSS :
http://smgal.ismine.net/tc_191/blog1/rss/response/24

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

« Previous : 1 : ... 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : ... 50 : Next »

블로그 이미지

게임 개발을 기반으로 한, 잡다한 개발 기록 저장소

- 안영기

Notices

Archives

Authors

  1. 안영기

Recent Comments

Recent Trackbacks

Calendar

«   2024/04   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

Site Stats

Total hits:
236720
Today:
4
Yesterday:
71