클래스에서 static const string 초기화


static const 멤버 변수는 클래스 안에서 초기화 해도 되는 거 아닌가요? 에러메세지에서는 out of line에서 초기화하라네요.

#define은 안 쓰고 싶은데 어떡하면 되나요

에러메세지

Static data member of type 'const string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') must be initialized out of line member

소스코드

class A {
   private:
      static const string RECTANGLE = "rectangle";
}
  • 2016년 01월 07일에 작성됨

조회수 485


1 답변


좋아요
0
싫어요
채택취소하기

static const 멤버 변수를 클래스 안에서 초기화할 수 있는 경우는

  1. integral타입(int, float등)
  2. enum타입

의 경우에만 가능합니다. 질문하신 경우는 string이므로 class 밖에서 초기화해야 합니다.

yourheader.h)

class A {   
private:      
  static const string RECTANGLE;
};

yoursource.c)

const string A::RECTANGLE = "rectangle";
  • 2016년 01월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close