C++ 11에서 그 불쾌한 규칙을 없애 버렸기 때문에 필자는 정적 const int/char/enum이 허용되었다고 생각합니다. 헤더에서 초기화 할 수 있지만 다른 모든 유형에서는 couldnt 할 수 있습니다. 이 때문에 C++에 대한 선언 및 정의 규칙을 요약하고 요약하려고했습니다.선언에 대한 C++ 저장소 클래스 및 한정자 규칙 정의
내가 시도/수행 한 것을 누군가가 받아 들일 수 있고 내가 놓치거나 부정확 한 내용으로 확장 할 수 있습니까? 다양한 static/const/int/non-int 변수에 대한 선언과 정의에 대한 모든 "규칙"을 요약하고 싶습니다. 데이터의 유형/선언/defining-하지만 난 여기에을에하는 방법을 잘 모릅니다 : 이상적이 3 열이 어떤 종류의 테이블에 넣을 수
정적 데이터 멤버 (선언)
- 동일한 헤더를 사용하는 여러 파일이 하나 이상의 복사본을 생성하므로 초기화하지 마십시오. 형식과 이름 만 제공하십시오.
정적 데이터 부재 (정의)
- 소스 파일의 변수를 초기화한다. 소스 파일 정의에서 "정적"이라는 단어를 반복하지 않아도됩니다. (선언)
const를 데이터 멤버
- 선언하지만 키워드를 const 사용하여 헤더 파일에 초기화되지 않았습니다.
CONST 데이터 부재 (정의)
- 생성자에서 초기화리스트를 사용하여 초기화해야. (선언)
정적 CONST 데이터 부재
- 정적 및 CONST하지만 초기화되지 키워드 헤더 파일 선언. 소스 파일에 정의
정적 CONST 데이터 부재 (정의)
- . 키워드 static 및 const (??)를 사용할 필요가 없습니다.
NB : 나는 그들이 이 헤더에 초기화 될 수있는 한, 정적에 대한 특별한 규칙이 (? 또는 const 정적이었다)하는 데 사용되는 사전 C++ 11 INT/열거/문자를 이해? ?통근
- 규칙
- 규칙 휘발성는 "const를"완전히 같은 규칙을 따라야합니까? 정적 volatile은 정적 데이터 멤버 등의 규칙을 따릅니다.
비 정적 데이터 멤버의 클래스 초기화를 허용하는 C++ 11에 대해 아직 알지 못했을 것입니다. – Casey
소스를 검토해야합니다. * 선언 *과 * 정의 *가 실제로 의미하는 것을 이해하십시오 –