main()을 입력하기 전에 내 C++ 클래스가 인스턴스화되지 않도록하고 싶습니다. 이것을 달성 할 수있는 방법이 있습니까?main()보다 먼저 클래스를 인스턴스화하지 못하도록 보호
-
일부 설명 :
내가 임베디드 응용 프로그램을 쓰고 있어요. 내 클래스는 정적 (BSS에 있어야 함)이어야하지만 인스턴스화시 main()이 시작될 때 특정 작업이 초기화되기 전에 사용할 수없는 리소스가 필요합니다. 그래서 마이어스 싱글 톤으로 만들고 싶습니다. 이상 적으로 MyClass :: instance()가 main() 전에 호출되지 않도록 보장하는 assert를 만들고 싶습니다.
는 클래스 (글로벌 생략) .. 나 메인 함수로 그 제어 개시를 알고 사용 ?? 주 전에 인스턴스화 될 수있다 .. 정적 기억 영역은 정적 키워드를 사용하여 클래스에 할당 될 수있다. – sud03r
예, _is_ global 인 다른 클래스에서 간접적으로 할 수 있습니다. 예 : 'Bar :: Bar() {정적 Foo notGlobal; }'- Bar 타입의 전역 변수가있는 경우 그 Foo 객체는 전역 바의 일부로 구성됩니다. – MSalters
아, 그리고 수정 사항은 main()에서가 아니라 자신의 Meyers 싱글 톤에서 "그 것들"을 초기화하는 것입니다. 물론 argv []에 의존하지 않는 한. – MSalters