「クラス内」(I)メソッドは、「クラス外」(O)メソッドと同じように機能します。
ただし、(I)は、クラスが1つのファイル(.cppファイル内)でのみ使用される場合に使用できます。(O)は、ヘッダーファイル内にある場合に使用されます。cppファイルは常にコンパイルされます。#include "header.h"を使用すると、ヘッダーファイルがコンパイルされます。
ヘッダーファイルで(I)を使用する場合、関数(Fun1)は、#include "header.h"をインクルードするたびに宣言されます。これにより、同じ関数を複数回宣言する可能性があります。これはコンパイルが難しく、エラーにつながることさえあります。
正しい使用例:
ファイル1:「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
ファイルに関数定義を含めることができます。