//정적 멤버 함수와 일반 멤버함수
#include <iostream>
using namespace std;
class Test {
int member_val;
static int class_val; //C++ : 정적 멤버변수 / Java : 클래스 변수
public:
//void Test::member_function(Test *const this)
void member_function() {
cout << "member_function()" << endl;
member_val=0; //this->member_val=0;
class_val=0; //class_val=0;
member_function(); //this->member_function()
class_function(); //class_function();
}
//void Test::class_function();
static void class_function() { //C++ : 정적 멤버함수 / Java : 클래스 함수
cout << "class_function()" << endl;
//member_val=0; //this->member_val=0; =>에러!
class_val=0; //class_val=0;
//member_function(); //this->member_function() => 에러!
class_function(); //class_function();
}
};
int Test::class_val=0; //링커에게 이 심볼의 위치를 알려줘야함
// 정적 멤버 함수에는 정적 멤버만 접근이 가능
// 일반 멤버 함수에는 모든 멤버에 접근이 가능
int main(void) {
Test t;
t.member_function();
Test::class_function(); //Java : Test.class_function();
return 0;
}
'Developer > Design Patterns' 카테고리의 다른 글
C++ Thread 클래스 구현 (0) | 2014.05.17 |
---|---|
함수 포인터 (0) | 2014.05.17 |
thiscall (0) | 2014.05.17 |
Iterator Pattern (0) | 2012.12.07 |
싱글톤 패턴 for Java (0) | 2012.07.04 |