최대 1 분 소요

1
2
3
4
5
6
7
8
// 스택만 할당할 수 있는 개체
class OnlyStackAssignable {
protected: 
    OnlyStackAssignable() {} // 상속해서만 사용 가능
    ~OnlyStackAssignable() {}
private:
    static void* operator new(std::size_t sz) {return NULL;} // 누군가가 접근하면 private여서 컴파일 오류
};

에만 할당 가능한 개체

1
2
3
4
5
6
7
class OnlyHeapAssignable {
protected:
    OnlyHeapAssignable() {} // 상속해서만 사용 가능
    ~OnlyHeapAssignable() {}
public:
    void Destroy() const {delete this;}
};

댓글남기기