.h 파일이 포함 된 .cpp 파일을 컴파일하려고 시도하고 개요 클래스를 구현합니다. String.h에서개인 변수를 정의하려고 할 때 .cpp 파일을 컴파일 할 수 없음
: String.cpp에서
using namespace std;
class String
{
private:
int _length;
char *data;
int getCharArraySize(char arr[]);
:
% g++ String.cpp -c
String.cpp:14:17: error: ‘int String::_length’ is not a static data member of ‘class String’
int String::_length;
난 단지입니다 :
#include "String.h"
using namespace std;
/*
* Private vars and methods
*/
int String::_length;
char String::*data;
int String::getCharArraySize(char arr[])
{
//method body
return 0;
}
내가 g 컴파일을 시도 ++ 나는이 오류 String :: _ length 문제가 있습니다. 처음에는 _length가 private이지만 다른 모든 private 메소드/vars로 인해서 컴파일이 잘되었다고 생각했습니다. 이 .h 파일을있는 그대로두고 나가 공개 할 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다!
정적 멤버 변수가 아닌 경우에는'int String :: _ length;'가 필요하지 않습니다. –
코드를 게시 할 때 줄 번호를 포함하지 마십시오 (코드를 복사하여 자신을 시험해 볼 수 없습니다). 대신 예 : 오류가 발생한 행을 표시하는 주석. –
그러면 생성자 내에서 간단히 정의해야합니까? 또한 정식으로 언급했다. 나는 그 질문을 편집 할 것이다. –