일반적으로 책에서는 일반적으로 C 구조체를 줄 바꿈 할 때 변환 연산자를 사용하지 않는 것이 좋습니다. 예를 들어 C char 배열의 래퍼 인 C++ 문자열은 변환 연산자를 제공하지 않습니다. 대신 방법은 c_str()
입니다.이 경우 변환 연산자가 유효합니까?
그러나 저는 심각하게 제 경우가 예외 일 수 있다고 생각합니다. SDL_Surface.
다음은 클래스 선언입니다. 이 경우
/** Wraps up SDL_Surface **/
class surface
{
SDL_Surface* _surf;
public:
/** calls SDL_LockSurface().
** throws surface_lock_exception on failure.
**/
void lock();
/** calls SDL_UnlockSurface() **/
void unlock();
/** calls SDL_LoadBMP().
** throws image_load_exception on failure.
**/
void load_bmp(const string&);
/** calls SDL_FreeSurface(). **/
void free();
/** destructor. Also free()s the internal SDL_Surface. **/
~surface();
};
, 나는 진지하게 내가
SDL_Surface*
을 필요로하는 다른 SDL 기능과 쉽게 호환성을 위해
SDL_Surface*
로 변환 연산자를 추가한다고 생각합니다.
여러분의 생각은 :
- 것은 변환 연산자는 신중해야겠습니까?
- 또는
c_str()
과 같은 방법을 사용해야합니까? - 다른 해결책이 있습니까?
+1, 좋은 해결책, 그것은 나를 생각 나게한다 : D. – ApprenticeHacker