척척석사가 되어보자

class 내의 static 함수 본문

알고리즘/C++

class 내의 static 함수

0.genius 2018. 9. 10. 16:16

class 내에서 static 함수를 쓰는 경우 : 특정 객체의 함수가 아닌 전역함수처럼 사용하기 위해서. 오히려 함수의 인자에 모두 객체의 정보가 들어간다면 static함수를 사용하는 것은 비효율적이다.


클래스내의 static을 사용할 때 static 멤버 변수와 static 멤버 함수가 있다. static 멤버 변수는 모든 객체가 공유하게 되는 변수가 된다.

static 멤버 함수도 모든 객체가 객체의 정보에 상관없이 같은 함수를 처리하게 된다. (공유된다고 할수 있나?)


따라서, 내가 지금 작업하고 있는것을 살펴보면,



위 함수는 클래스 내에 있는 static 함수인데, 모든 인자에 노드의 정보를 필요로 하고있다. 이 경우, static을 사용하는 것은 비효율적이라 할 수 있다. 따라서 다음과 같이 수정해준다.



함수 정의 부분에서, 현재 노드의 정보가 필요한 경우 this를 이용한다.

'알고리즘 > C++' 카테고리의 다른 글

c++ serialization (boost 사용)  (0) 2018.09.28
C++ STL - hash_map, vector사용하기  (0) 2018.09.19