이 클래스 :정적 인라인 메소드는 정적 멤버 초기화를 필요로하지
KH
class k
{
static int ii;
static void foo();
};
k.cpp
#include "k.h"
void k::foo()
{
ii++;
}
컴파일하는 동안 나는 다음과 같은 오류 메시지가 나타납니다 :
error LNK2001: unresolved external symbol "private: static int k::ii" ([email protected]@@0HA)
괜찮습니다. 내가 방법 inline
키워드를 추가 할 때, 오류가 사라된다
class k
{
static int ii;
inline static void foo();
};
이 실제 예제 아니지만, 정확히이 코드에서 일어나는 모르는 누군가가 나에게 그것을 설명 할 수있다?
'foo'는 어디에 사용됩니까? 'ii'는 어디에 정의되어 있습니까? 'foo'는 어디에 정의되어 있습니까? –
@Charles Bailey foo 아무데도 사용하지 않고, 아무데도 정의되지 않았으며, foo가 cpp 파일에 정의되어 있습니다. 그러나 나는 이미 아래 답변에 대한 설명을 얻었습니다. foo는 사용되지 않으므로 코드가 생성되지 않습니다. – begezavr