เมธอด "ภายในคลาส" (I) ทำเช่นเดียวกับเมธอด "นอกคลาส" (O)
อย่างไรก็ตาม (I) สามารถใช้ได้เมื่อใช้คลาสในไฟล์เดียวเท่านั้น (ภายในไฟล์. cpp) (O) ใช้เมื่ออยู่ในไฟล์ส่วนหัว ไฟล์ cpp จะถูกคอมไพล์เสมอ ไฟล์ส่วนหัวจะถูกคอมไพล์เมื่อคุณใช้ #include "header.h"
หากคุณใช้ (I) ในไฟล์ส่วนหัวฟังก์ชัน (Fun1) จะถูกประกาศทุกครั้งที่คุณใส่ #include "header.h" ซึ่งอาจนำไปสู่การประกาศฟังก์ชันเดียวกันหลายครั้ง คอมไพล์ยากกว่าและอาจทำให้เกิดข้อผิดพลาดได้
ตัวอย่างการใช้งานที่ถูกต้อง:
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
ไฟล์แยกต่างหาก