프린이 입니다.
자바만 배웠다가 이번에 C++ 공부하고 있습니다.
자바는 반드시 클래스 안에 메소드를 선언 및 정의를 같이 해야 합니다만 C++에서는 클래스 안에 메소드를 선언만 해 놓고 나중에 바깥에서 정의를 할 수도 있더군요
ex ) 1. 클래스 내부에서 선언및 정의를 같이 하는 경우
class abc
{
void print()
{
cout<< "hello" << endl;
}
}
ex) 2. 클래스 내부에서 선언만하고 외부에서 정의를 하는경우
class abc
{
void print();
}
abc::print()
{
cout<< "hello" << endl;
}
두가지 차이점이 뭔가요? 이유가 있어서 2개를 같이 쓸 수 있는건지 그냥 가독성 때문에 프로그래머 원하는대로 쓰면 되는건지
프린이에게 답변좀 부탁함니다
구현이랑 헤더 가르고싶을때
1. 컴파일 종속성을 줄게 만든다. 클래스의 구현 내용을 수정했을때, 다시 컴파일되어야 하는 부분을 최소하 하기 위해서 h/cpp로 나뉜다
2. 재귀적인 해더 추가와 같은 문제를 없애준다.
3. 해더에 구현을 하면 아마도(?) 암시적 인라인할 가능성을 컴파일러에게 알려준다.
... 가물가물하네 이유가