클래스의 정적 변수를 파일에서 전역 변수로 다시 초기화해야하는 이유는 무엇입니까? 그렇지 않으면 연결 오류가 발생합니다. 그 뒤에있는 이론은 무엇입니까? 정적 변수가 데이터 세그먼트에 있음을 이해합니다.클래스의 정적 변수가 연결 오류를 발생시키는 이유는 무엇입니까?
my_class.h
class my_class
{
public:
static int m_fid;
void get_fid();
};
my_class.cpp :
#include <iostream>
using namespace std;
int main()
{
my_class t;
/**this gives a linking error */
my_class::m_fid = 0;
return 0;
}
을 정의해야합니까? – Beta
범위가 DS에 있습니다. 인스턴스를 생성 할 때 객체는 스택 또는 힙에 놓입니다. 스택 멤버는 스택 또는 힙의 멤버 파트가 될 수 없습니다. 따라서 인스턴스화되지 않습니다. 그러나 C++은 우리가 클래스를 인스턴스화 할 때 그것을 DS에 넣을만큼 지능적이지 않습니다. –