>백엔드 개발 >C++ >C에서 개인 정적 상수 `std::string`을 정의하는 방법은 무엇입니까?

C에서 개인 정적 상수 `std::string`을 정의하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-27 09:36:13257검색

How to Define a Private Static Constant `std::string` in C  ?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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