반응형

Static Function (정적 함수)

  •  .cpp 파일내에 선언 정의가 함께 있으며, .cpp 파일내에서만 사용가능

 

Static Member Function (정적 멤버 함수)

  • C++ 에서는 클래스의 멤버 함수또한 정적으로 선언 가능
  • static member function 클래스의 객체를 생성하지 않고도클래스 이름만으로 호출 가능
  • 객체를 생성하지 않으므로, this 포인터를 가지지 않음
  • 특정 객체와 결합하지 않으므로, 정적 멤버 변수 밖에 사용할 없음ex1)

static 멤버 변수의 초기화는 클래스 외부에서 한다

위 그림에서 보이는것처럼 nonstatic member function 에서는 비정적멤버 변수, 정적 멤버변수 둘다 접근 가능하다.

그러나

"비 정적 멤버 참조는 특정 객체에 상대적 이어야 합니다"

 Static Member Function(정적 멤버 함수) 에서는, 비정적멤버 변수에 접근할려고 할경우 에러가 뜬다

따라서 오직 정적 멤버 변수(static member variable)만 접근이 가능하다

 

또한 private 인경우, static 이라 할지라도, 클래스 외부에서 사용 불가능하다

private 로 바꿨더니 호출이 불가능하다

 

private:

static member function

클래스 스코프 내부에서만 사용가능

public:

static member function

클래스 스코프 내부 외부에서

객체 생성하지 않고 사용가능

static function

.cpp 파일 내에서만 사용가능, 선언과 정의
둘다
.cpp 있어야함

 

반응형

'C++' 카테고리의 다른 글

c++ Singleton Pattern 기본 구현 방법  (0) 2020.03.03
const  (0) 2020.02.29
CopyConstructor, Shallow Copy, Deep Copy  (0) 2020.02.24
std::function (c++ 11)  (0) 2020.02.23
Input Output library  (0) 2020.02.21

+ Recent posts