본문 바로가기
Language&Framework&Etc/C++

1-5 이름공간(namespace)에 대한 소개 추가(함수 선언 정의)

by 머리올리자 2020. 11. 18.

함수의 선언과 정의를 나눈다.

 

#include <iostream>

namespace lab1 
{
	void simplefunc(void); // 함수 원형 선언
}

namespace lab2
{
	void simplefunc(void); // 함수 원형 선언
}


int main(void)
{
	lab1::simplefunc();
	lab2::simplefunc();
	return 0;
}

void lab1::simplefunc(void) // 정의
{
	std::cout << "lab1이 정의한 함수" << std::endl;
}

void lab2::simplefunc(void) // 정의
{
	std::cout << "lab2이 정의한 함수" << std::endl;
}

궁금해졌다 왜 선언과 정의를 따로 두는지

 

함수 원형 선언?

  • 함수의 원형을 먼저 선언하면 코드 작성의 에러를 줄일 수 있다고 함
  • 소스파일을 컴파일 할 때 허용되는 형식이라는 것임을 알려주고 컴파일 하게 한다고 함
  • 메인함수 위에 함수들이 나열되는 것을 방지(??)
  • 매개변수의 이름은 필요없이 반환형, 함수 이름, 자료형 등만 알려주면 됨

 

 

참고 : [윤성우 열혈 C++ 프로그래밍] - 대부분의 내용 및 코드는 이 책에서 개인 공부 정리 목적으로 참고하였습니다.