정적 변수는 선언 후 외부에서도 선언을 한 번 더 해줘야한다.
Test.h
#pragma once
class Test
{
public:
static int Val;
};
cpp 파일에서 재선언 해주면 된다. 그리고 접근하기 위해선 클래스::변수 또는 함수로 해주면 된다.
#include <iostream>
#include "Test.h"
using namespace std;
int Test::Val = 0;
int main()
{
cout << Test::Val << endl;
}
const일 때만 초기값 설정이 가능하다.
#pragma once
class Test
{
public:
const static int Val = 10;
};
#include <iostream>
#include "Test.h"
using namespace std;
const int Test::Val;
int main()
{
cout << Test::Val << endl;
}
// 답 10
함수일 땐 더 간단하다 재 선언 해줄 필요없다.
#pragma once
class Test
{
public:
static void Fn()
{
}
};
아래와 같이 변경했다.
#pragma once
class Test
{
public:
static void Fn();
};
#include <iostream>
#include "Test.h"
using namespace std;
void Test::Fn()
{
cout << "테스트" << endl;
}
int main()
{
Test::Fn();
}
// 테스트
'프로그래밍 언어 > C++' 카테고리의 다른 글
C++ auto 타입 추론 (0) | 2022.09.21 |
---|---|
C++ mutable (0) | 2022.09.15 |
C++ inout형 포인터 *& (0) | 2022.09.02 |
C++ 클래스 배열 포인터 및 2차원 배열 포인터 (0) | 2022.09.01 |
C++ 간단하게 사용할 수 있는 포인터 해제 매크로 함수 (0) | 2022.08.29 |