프로젝트에서 Setting들을 저장하기 위해서 Singleton 객체를 만들어서 사용하곤 했었는데
이제껏 만들어 사용하던 것이 잘못되어 있던 것을 발견했습니다.
이제껏 만들어 사용하던 것이 잘못되어 있던 것을 발견했습니다.
class CAppDocData
{
CAppDocData(void);
public:
static CAppDocData& GetInstance();
~CAppDocData(void);
}
위의 클래스는 아래와 같이 복사 생성이 허용되기 때문에 Singleton 패턴이 깨어져 버립니다.
CAppDocData docData = CAppDocData::GetInstance();
따라서 복사 생성자를 private으로 두어 복사 생성을 하지 못하게 막아야합니다.
class CAppDocData
{
CAppDocData(void);
CAppDocData(const CAppDocData& rhs){}
public:
static CAppDocData& GetInstance();
~CAppDocData(void);
}
댓글
댓글 쓰기