[c++] 생성자의 접근 지정자

C++에서는 생성자를 public, protected 또는 private으로 접근 지정할 수 있습니다. 생성자의 접근 지정자는 해당 클래스의 객체를 생성하는 데 어떤 제약을 둘지 결정합니다.

Public 생성자

Public 생성자는 클래스 외부에서 객체를 생성할 수 있도록 허용합니다. 대부분의 경우 클래스의 기본 생성자와 다양한 매개변수를 가진 생성자들은 public으로 선언됩니다.

class MyClass {
public:
    // 기본 생성자
    MyClass() {}
    
    // 매개변수가 있는 생성자
    MyClass(int param) {}
};

Protected 생성자

Protected 생성자는 해당 클래스 또는 파생 클래스 내부에서만 호출할 수 있습니다. 주로 상속 관련 기능에 활용되며, 외부에서 직접적인 객체 생성을 제약하기 위한 용도로도 사용될 수 있습니다.

class MyClass {
protected:
    // protected 생성자
    MyClass() {}
};

Private 생성자

Private 생성자는 해당 클래스 내에서만 호출할 수 있으며, 외부에서는 객체를 생성할 수 없습니다. 이렇게 하면 해당 클래스의 싱글톤(Singleton) 패턴 구현이 가능합니다.

class MyClass {
private:
    // private 생성자
    MyClass() {}
};

생성자의 접근 지정자를 올바르게 활용하여 객체 생성에 대한 제어를 할 수 있습니다.