비공개 정적 데이터 멤버 초기화: 정적 생성자의 대안
클래스에서 비공개 정적 데이터 멤버가 필요한 경우가 일반적입니다. , 정적 생성자의 Java 또는 C# 개념과 유사합니다. 그러나 C는 정적 생성자에 대한 명시적인 메커니즘을 제공하지 않습니다.
이 문제를 해결하기 위해 C는 대체 접근 방식을 제공합니다. 클래스 내에서 정적 데이터 멤버를 선언하는 대신 정적 데이터를 보유할 별도의 일반 클래스를 만듭니다. 원하는 클래스 내에서 이 일반 클래스의 정적 인스턴스를 선언합니다.
예:
class StaticStuff { std::vector<char> letters_; public: StaticStuff() { for (char c = 'a'; c <= 'z'; c++) letters_.push_back(c); } // Provide a method to access letters_ }; class Elsewhere { static StaticStuff staticStuff; // Static instance runs once };
이 기술을 사용하면 정적 데이터가 프로그램 실행 중에 한 번 초기화되고 액세스할 수 있습니다. 프로그램 수명 내내. 이 접근 방식은 C의 정적 생성자에 대한 실행 가능한 대안으로 사용됩니다.
위 내용은 정적 생성자 없이 C에서 개인 정적 데이터 멤버를 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!