저는 C++을 처음 사용하며이 프로그램을 실행하려고하면 "오류 LNK2001 : 해결되지 않은 외부 기호"private : static int Plate :: plate_nID "가 표시됩니다. 지금은 단지 플레이트 클래스를 생성하고 ID를 출력하려고 내가 잘못 어디로 갔는지 확실하지 여기 정적 클래스 변수를 사용하여 개체의 새 ID를 만들려고합니다.
#pragma once
#include <string>
using namespace std;
class Plate{
private:
int id;
string plateName;
static int plate_nID;
int generateID(){
plate_nID++;
return plate_nID;
}
public:
Plate(string name){
plateName = name;
id = generateID();
}
~Plate(){}
int getID(){
return id;
}
string getName(){
return plateName;
}
};
은 내 주 :.. 나는이 질문을 보았다
#include "Plate.cpp"
#include "PlateNode.cpp"
using namespace std;
int main(){
Plate s=Plate::Plate("p1");
cout << s.getID();}
: Undefined reference to static class member 내 질문과 유사한 질문 eul은 dulpicates로 표시되어 있지만, 그렇게하려고 할 때 : 클래스 외부의 정적 멤버가 아닌 인스턴스를 생성 할 수 없습니다. 도와주세요!
대체로'plate_nID'를'generateID' 함수 내에서 정적으로 만듭니다. (자체는 정적이어야합니다) –
'Plate (const string & name)'과'const string & getName() const'을 생각해보십시오 –