프로젝트에서 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); }
댓글
댓글 쓰기