"Inside the class"(I) 메서드는 "outside the class"(O) 메서드와 동일합니다.
그러나 (I)는 클래스가 하나의 파일 (.cpp 파일 내부)에서만 사용되는 경우 사용할 수 있습니다. (O)는 헤더 파일에있을 때 사용됩니다. cpp 파일은 항상 컴파일됩니다. #include "header.h"를 사용하면 헤더 파일이 컴파일됩니다.
헤더 파일에서 (I)를 사용하면 #include "header.h"를 포함 할 때마다 (Fun1) 함수가 선언됩니다. 이로 인해 동일한 함수를 여러 번 선언 할 수 있습니다. 이것은 컴파일하기가 더 어렵고 오류가 발생할 수도 있습니다.
올바른 사용법의 예 :
File1 : "Clazz.h"
class Clazz
{
public:
void Fun1();
};
File2 : "Clazz.cpp"
#include "Clazz.h"
void Clazz::Fun1()
{
}
File3 : "UseClazz.cpp"
#include "Clazz.h"
class MyClazz;
MyClazz.Fun1();
File4 : "AlsoUseClazz.cpp"
#include "Clazz.h"
class MyClazz2;
MyClazz2.Fun1();
File5 : "DoNotUseClazzHeader.cpp"
class Clazz
{
public:
void Fun1()
{
}
};
class MyClazz;
MyClazz.Fun1();
.cpp
파일에 함수 정의를 포함 할 수 있습니다 .