const std::string 유형의 정적 데이터 멤버 정의
C에서는 클래스에 대한 전용 정적 상수를 정의하는 것이 어려울 수 있습니다. 표준 const std::string 유형을 사용할 때. 발생한 오류 메시지는 사용 중인 메소드가 ISO C 표준을 준수하지 않음을 나타냅니다.
#define 지시어를 사용하지 않고 개인 리터럴 상수를 정의하려면 다음 두 가지 접근 방식을 고려하세요.
인라인 변수(C 17 이상)
C 17부터 인라인 변수를 사용하여 다음을 수행할 수 있습니다. 상수 초기화 프로그램을 사용하여 정적 데이터 멤버를 선언합니다. 이는 클래스 정의 내의 정적 선언 앞에 inline 키워드를 추가하여 수행됩니다.
class A { private: inline static const std::string RECTANGLE = "rectangle"; };
클래스 정의 외부 정의(C 17 이전)
이전 C 17에서는 정적 멤버를 클래스 정의 외부에서 정의하고 별도로 초기화해야 합니다. 클래스 정의 내의 정적 선언은 초기화 없이 이루어집니다.
class A { private: static const std::string RECTANGLE; }; // In an implementation file const std::string A::RECTANGLE = "rectangle";
클래스 정의 내에서 비정수 유형으로 정적 멤버를 직접 초기화하는 구문은 정수 및 열거형 유형에서만 허용됩니다.
위 내용은 C에서 개인 정적 상수 `std::string`을 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!