C++ 언어

Class 멤버 함수의 선언 및 정의 분리

JongSeok_12 2020. 4. 2. 19:16
C 언어 C++
(반환 자료형) (함수 식별자) (매개 변수) (반환 자료형) (해당 함수의 소속 : : 함수 식별자) (매개 변수)

 

위의 자료는 C와 C++ 의 함수 선언시 기술해야 하는 내용을 표로 정리한 것이다. 기존의 C에서는 함수를 선언시 함수가 반환하는 자료형과 해당 함수의 이름 그리고 매개변수를 기술하면 함수가 선언된다.

하지만 C++ 에서는 Name Space 개념의 등장에 따라 각 함수, 변수 등에게 소속이 생기며 만약 함수가 Name Space에 속해 있을 시 해당 Name Space를 기술하여야 한다. 

class Test_func
{
public:
	Test_func(){
		nData = 50;
	}
	int nData = 10 ;

	
	void test_func(Test_func* test_p);
};

// C++ 에서 함수의 정의는 해당 함수가 속한 Name Space를 기술해야한다.
// C => void test_func()   C++ => void Test_func::test_func()
// 위와 같이 해당 네임스페이스를 기술하며 만약 무소속일시 (공백)::(함수명)
// 위와 같이 작성한다.
void Test_func::test_func(Test_func* test_p){
	std::cout << "Test Functuon : " << test_p->nData << std::endl;
}

 위와 같이 Test_func Class의 멤버로 test_func 함수가 선언 되어 있으며 해당 함수를 만약 외부에서 정의 하려고 할 경우 해당 함수의 Name Space를 기술하여야 한다 따라서 " Test_func :: test_func " 와 같이 기술한다.