반응형
정적 변수 C ++에 대한 정의되지 않은 참조
안녕하세요, 다음 코드에서 정의되지 않은 참조 오류가 발생합니다.
class Helloworld{
public:
static int x;
void foo();
};
void Helloworld::foo(){
Helloworld::x = 10;
};
나는 static
foo()
기능을 원하지 않는다 . static
클래스의 static
메서드가 아닌 클래스의 변수에 액세스하려면 어떻게 해야합니까?
나는
static
foo()
기능을 원하지 않는다
글쎄, 클래스에서 정적 foo()
이 아니며 클래스의 변수에 액세스하기 위해 만들 필요 가 없습니다 .static
static
해야 할 일은 단순히 정적 멤버 변수에 대한 정의 를 제공하는 것입니다 .
class Helloworld {
public:
static int x;
void foo();
};
int Helloworld::x = 0; // Or whatever is the most appropriate value
// for initializing x. Notice, that the
// initializer is not required: if absent,
// x will be zero-initialized.
void Helloworld::foo() {
Helloworld::x = 10;
};
코드는 정확하지만 불완전합니다. 클래스 Helloworld
에는 정적 데이터 멤버 의 선언 이 x
있지만 해당 데이터 멤버에 대한 정의 가 없습니다 . 필요한 소스 코드의 일부
int Helloworld::x;
또는 0이 적절한 초기 값이 아닌 경우 이니셜 라이저를 추가합니다.
참고 URL : https://stackoverflow.com/questions/16284629/undefined-reference-to-static-variable-c
반응형
'IT TIP' 카테고리의 다른 글
a = (x == null)? (0) | 2020.12.10 |
---|---|
Twitter-bootstrap 축소 플러그인-여러 "그룹"을 열려면 어떻게해야합니까? (0) | 2020.12.10 |
"정의로 이동"후에 당신이 어디에서 왔는지 돌아가라는 명령이 있습니까? (0) | 2020.12.10 |
Ruby에서 배열을 청크하는 방법 (0) | 2020.12.10 |
자식 창에서 부모 창 다시로드 (0) | 2020.12.10 |