[C++] การแยก class ออกเป็นไฟล์ .h และ .cpp


เพื่อให้โครงสร้างโปรเจ็คมีระเบียบ เราสามารถแยกคลาสต่างๆออกมาเป็นไฟล์ต่างหากได้ โดยโครงสร้างไฟล์ที่ทำหน้าที่เก็บ 1 คลาส ประกอบด้วย 2 ไฟล์ คือ
  • ไฟล์นามสกุล .h ไว้เก็บโครงสร้างของคลาสที่ต้องการสร้างขึ้นมา เป็นการกำหนดโดยภาพรวมว่าภายในคลาสเรานั้นจะประกอบด้วยฟังก์ชัน ตัวแปรอะไรบ้าง มีแต่โครงสร้างอย่างเดียว ทำงานไม่ได้
  • ไฟล์ .cpp ไว้เขียนโค้ดทำงานเพื่อให้คลาสที่ได้มาสามารถใช้งานได้จริง โดยเราต้องยึดตามโครงสร้างที่กำหนดไว้ใน .h
ในโปรแกรม Dev C++ เมื่อสร้าง Project แล้ว สร้างคลาสโดย คลิก File > New > Class ตั้งชื่อว่า Person แล้วกด Create

จะได้ ไฟล์ใหม่ 2 ไฟล์ พร้อมโค้ดดังนี้

Person.h
#ifndef PERSON_H
#define PERSON_H

class Person
{
 public:
 protected:
};

#endif

Person.cpp
#include "Person.h"

ใส่โค้ด โดยเพิ่มไฟล์ main.cpp ไว้ทดสอบการทำงานด้วย

Person.h
#ifndef PERSON_H
#define PERSON_H

class Person
{
 public:
  void Speak();
  void Walk();
 protected:
};

#endif

Person.cpp
#include <iostream>
#include "Person.h"
using namespace std;

void Person::Speak(){
 cout << "Person speak" << endl;
}

void Person::Walk(){
 cout << "Person walk" << endl;
}

Person.h
#ifndef PERSON_H
#define PERSON_H

class Person
{
 public:
  void Speak();
  void Walk();
 protected:
};

#endif

main.cpp
#include <iostream>
#include "Person.h"
using namespace std;

int main(int argc, char** argv)
{ 
 Person p;
 p.Speak();
 p.Walk();
 
 system("pause"); 
 return 0;
}

Result : 

Person speak
Person walk

Previous
Next Post »