모양 팩토리와 같은 클래스에 대한 전용 정적 상수 문자열을 정의하는 과정에서 장애물에 직면할 수 있습니다. C 컴파일러로. 이는 C 표준에 따른 제한 때문입니다. 이 문제를 극복하고 정적 const 문자열 데이터 멤버를 설정하려면 다음 솔루션을 고려하십시오.
C 17에 도입된 인라인 변수를 활용하면 편리한 정적 const 변수를 정의하는 효율적인 방법:
class A { private: inline static const string RECTANGLE = "rectangle"; };
C 17 이전 버전에서는 클래스 외부에서 정적 멤버를 정의하고 초기화 프로그램을 별도로 제공해야 합니다.
class A { private: static const string RECTANGLE; };
const string A::RECTANGLE = "rectangle";
클래스 내부에 초기화 프로그램이 있는 구문이 있다는 점에 유의하는 것이 중요합니다. 클래스 정의는 정수 및 열거형 유형에만 예약되어 있습니다.
#define은 상수 정의에 대한 유혹을 느낄 수 있지만 바람직하지 않을 수 있는 수준의 전역 가시성을 제공합니다. 예를 들어, 상수가 헤더 파일에 정의되어 있으면 프로그램의 모든 부분에서 전역적으로 액세스할 수 있게 됩니다. 이로 인해 다른 잠재적인 문제 중에서도 동일한 상수를 정의하는 다양한 구현과 이름 지정 충돌이 발생할 수 있습니다.
위 내용은 C에서 개인 정적 상수 문자열 데이터 멤버를 어떻게 정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!