2010-01-26 3 views

답변

12

예 정적 인 것은 필수입니다. 그것들은 아직 존재하지 않는 객체를위한 메모리를 할당하는데 사용되기 때문에 참조 할 인스턴스가 없다.

+3

정확합니다. 그렇지 않으면 우리는 닭고기와 계란에 문제가 생길 것입니다! – jason

+1

이것이 궁금합니다. 왜 정적이 아닌 클래스 별 '연산자 new'를 원하십니까? –

+2

정적이 아닌 새로운 클래스의 작은 프로그램을 작성했기 때문에 혼란 스러웠습니다. 그러나 @apoluektov에 의해 설명 된 바와 같이 그것은 암시 적으로 정적 인 것으로 선언됩니다. –

10

"static"을 입력하지 않았더라도 static으로 암시 적으로 선언됩니다.

+0

그게 사실 .... 누군가가 이것을 확인할 수 있습니다 어쩌면 이것은 내가 뭘하고 컴파일러가 정적으로 만들었습니다. –

+5

예, C++ 표준 ANSI ISO, 12.5/1 : "클래스 T에 대한 모든 할당 함수는 명시 적으로 정적으로 선언되지 않은 경우에도 정적 멤버입니다." 12.5/6의 할당 해제와 동일합니다. –

+0

고맙습니다. 테스트 한 결과, 의도적으로 new 연산자에서 컴파일 오류가있는 프로그램을 작성 했으므로 정적으로 사용하지 않았습니다. GCC는 나에게이 오류를 주었다'정적 멤버 함수에서'static void * Foo :: operator new (size_t) ': –

관련 문제