C의 정적 초기화: 정적 생성자의 대안
C에서 비공개 정적 데이터 멤버를 초기화하는 것은 부족하기 때문에 문제가 될 수 있습니다. 정적 생성자. 그러나 다른 언어의 정적 생성자의 기능을 미러링하는 멋진 솔루션이 있습니다.
별도의 클래스 사용
정적 초기화를 시뮬레이션하려면 별도의 일반 클래스를 생성하세요. 정적 데이터를 보유하고 이를 필요로 하는 클래스 내에서 이 클래스의 정적 인스턴스를 선언합니다. 예:
// StaticStuff class holds static data class StaticStuff { std::vector<char> letters_; public: // Constructor initializes data StaticStuff() { for (char c = 'a'; c <= 'z'; c++) letters_.push_back(c); } // Provide access to static data std::vector<char>& letters() { return letters_; } }; // Class that uses static data class C { // Static instance of StaticStuff (initialized once) static StaticStuff staticStuff; };
이 예에서 StaticStuff는 정적 데이터 문자_를 보유하고 해당 생성자는 첫 번째 인스턴스화 시 이를 초기화합니다. 정적 인스턴스 staticStuff는 C 내에서 선언되어 C 클래스 내에서 정적 데이터에 대한 액세스를 제공합니다.
장점
이 접근 방식은 여러 가지 이점을 제공합니다.
위 내용은 C에서 정적 생성자를 시뮬레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!