[GPG 1 글 1.3] 싱글턴..(싱글톤?)

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

킬레인

음..

Post by 킬레인 »

싱글턴 템플릿이 있는 헤더파일에 아래 내용이 빠진거 같은데;

Code: Select all

template<typename T>
T* CSingleton<T>::ms_pSingleton=NULL;
박필관
Posts: 27
Joined: 2002-08-23 10:59

허걱...

Post by 박필관 »

template<typename T>T* CSingleton<T>::ms_pSingleton=NULL;

이 cpp파일 부분에 있던걸 h파일부분으로 옮기니깐 에러 안나네..

왜 그러져?

C++책을 다시 공부해야 될듯...
//---후휘휠---//
뒷북

제일 위에있는 코드가 상속에 문제가 있다는게 이해가 안되요

Post by 뒷북 »

Silgleton 템플릿 클래스가 상속의 꼭대기에있던 말단에있던
두가지 형태 모두
상속에 문제는 없는거 아닌가요?

상속되어서 만들어진 클래스에대한 instance가 하나만 존재하면 되는거 아닌가요?
소온님

제일위의 싱글턴 코드

Post by 소온님 »

제일위의 싱글턴 코드가 상속이 불가능한 이유가
싱글턴 인스턴스를 담을 공간이 하나밖에 없어서 인가요?

상속을 하게되면 클래스 종류가 여러개가 될텐데
클래스 종류가 여러개가 되면 여러개의 싱글턴 인스턴스를 담을수있어야하는데
저 구조는 싱글턴 인스턴스를 담을공간을 하나로 못박는 구조라서 그런게 맞나요?

계속 봐도 상속이 안된다는 이유는 이것밖에 없는거같네요.

맞다 아니다
이지선다 라도 답변 부탁합니다.
:roll:
Guest

단일체가 여러개가 되버립니다.

Post by Guest »

[quate]
class CObj0 {} // 단일체
CObj0* o1 = CSingletonT<CObj0>::GetObject(); // 기존코드
...
class CObj1 : public CObj0 {} // 상속된 단일체
CObj0* o2 = CSingletonT<CObj1>::GetObject(); // 새로운 코드
[/quate]

위에서 감자님이 쓰신 예제를 약간 수정해봤습니다.

상속을 하게 되면 위처럼 o1 과 o2 모두 CObj0 에 대한 단일체가 됩니다.

즉 단일체의 기본원칙이 무너지게 됩니다.
Post Reply