C++에서 혹시 이런 문법을 보셨습니까?
글쓴이: ikpil / 작성시간: 금, 2008/05/09 - 11:59오후
class NullClass { public: template<class T> operator T*() const { return 0; } };
기본적으로 몇가지 난해한 것이 있습니다.
첫째, 이것을 무엇에 대한 연산자 operator 입니까?
둘째, 함수의 반환타입이 없는데, 어떻게 리턴값을 받을수 있는 것입니까?
이 두가지 문제에 대한 해결책을 찾지 못해, 어려움을 겪고 있습니다.
이 클래스는 NULL 포인트 객체를 만들때 사용 한다고 합니다..
Forums:
형변환연산자에 대해
형변환연산자의 오버로딩에대해 찾아보세요.
감사합니다 찾아습니다.
http://cafe.naver.com/summary.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=19
간략한 소개 글이지만 이 규칙에 대해서 알게 되었습니다.
http://www.ikpil.com
"모든 형이름 T에
"모든 형이름 T에 대해, NullClass는 T *으로 변환될 수 있으며, 무조건 0으로 변환된다." 정도로 해석할 수 있는 코드입니다.
T *으로 변환해야 하니 T * 형식의 값을 반환해야겠죠. 그래서 반환값의 형식은 생략할 수 있습니다.
참고로, 저 역변환(다른 형식 -> 특정 클래스)은 생성자 혹은 명시적(explicit) 생성자를 통해서 할 수 있습니다.
--
임수 서룬뫼 윤 희수 {cppig1995}
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
댓글 달기