>백엔드 개발 >C++ >C에서 개인 정적 상수 문자열 데이터 멤버를 어떻게 정의할 수 있습니까?

C에서 개인 정적 상수 문자열 데이터 멤버를 어떻게 정의할 수 있습니까?

DDD
DDD원래의
2024-12-25 04:20:14316검색

How Can I Define Private Static Constant String Data Members in C  ?

정적 상수 문자열 데이터 멤버 달성: 종합 가이드

모양 팩토리와 같은 클래스에 대한 전용 정적 상수 문자열을 정의하는 과정에서 장애물에 직면할 수 있습니다. C 컴파일러로. 이는 C 표준에 따른 제한 때문입니다. 이 문제를 극복하고 정적 const 문자열 데이터 멤버를 설정하려면 다음 솔루션을 고려하십시오.

인라인 변수(C 17 이상)

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

#define은 상수 정의에 대한 유혹을 느낄 수 있지만 바람직하지 않을 수 있는 수준의 전역 가시성을 제공합니다. 예를 들어, 상수가 헤더 파일에 정의되어 있으면 프로그램의 모든 부분에서 전역적으로 액세스할 수 있게 됩니다. 이로 인해 다른 잠재적인 문제 중에서도 동일한 상수를 정의하는 다양한 구현과 이름 지정 충돌이 발생할 수 있습니다.

위 내용은 C에서 개인 정적 상수 문자열 데이터 멤버를 어떻게 정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.