Just another WordPress.com site

Header file ใน C++

ในการสร้างฟังก์ชัน หรือ class ขึ้นมา เรามักจะต้องการให้ฟังก์ชันหรือ class นั้น ใช้ได้ซ้ำแล้วซ้ำเล่า ซึ่งเราสามารถทำได้ได้ไม่ยากครับ ตัวอย่างเช่น สมมติว่าผมสร้างฟังก์ชันขึ้นมา 2 ฟังก์ชันในไฟล์ circle.cpp ดังนี้

ถ้าผมต้องการการเรียกฟังก์ชันในไฟล์นี้มาใช้ในไฟล์ test.cpp ผมแค่เพียงประกาศ #include “circle.cpp” เพียงเท่านี้ก็จะสามารถเรียกฟังก์ชันต่างๆที่อยู่ในไฟล์ circle.cpp มาใช้ได้แล้วครับ

เพื่อความสะดวกในการเขียนโปรแกรม เราอาจสร้าง header file ซึ่งเป็นไฟล์สารบัญ ใช้บอกว่าในไฟล์นามสกุล .cpp นั้นๆ ประกอบด้วยฟังก์ชันอะไรบ้าง เช่น ในตัวอย่างนี้ผมอาจจะสร้าง header file ชื่อว่า circle.h ดังนี้ครับ

ใน circle.h จะมีต้องมีการ import ไฟล์จาก circle.cpp เข้ามา เพื่อให้ฟังก์ชันต่างๆ เหล่านี้สามารถใช้งานได้ครับ

ในไฟล์ test.cpp เราก็สามารถเปลี่ยนการ import เป็น import จาก header file ดังนี้ครับ

การสร้าง header ในกรณีที่ไฟล์ของเราเป็น class ก็เขียนคล้ายๆกับที่กล่าวมาข้างต้นครับ เช่น สมมติว่าผมสร้างไฟล์ Class_circle.cpp ดังนี้

ใน class circle นี้ประกอบด้วย method ที่เป็น public จำนวน 2 method ดังนั้นใน header file ผมก็จะเขียนชื่อ method ทั้งสองลงไปดังนี้ครับ(ในที่นี้ผมจะตั้งชื่อ header file ว่า Class_circle.h ครับ)

เมื่อทดลอง import ไฟล์ Class_circle.h ดูจะได้ผลลัพธ์ดังนี้ครับ

ใน C++ มีรูปแบบมาตรฐานการประกาศ header file สำหรับตัวอย่างนี้ดังนี้ครับ

ในส่วนของ header file ที่ชื่อ Class_circle.h จะประกาศชื่อ class และชื่อ method ต่างๆของ class ดังนี้ครับ

ในส่วนของไฟล์ที่ชื่อ Class_circle.cpp จะ import ไฟล์ Class_circle.h และเขียนรายละเอียดเกี่ยวกับ method ต่างๆลงไปดังนี้ครับ

ถ้าเราต้องการเรียกใช้ class ที่ชื่อ Class_circle เราจะต้อง import ทั้งไฟล์ที่ชื่อว่า Class_circle.h และ Class_circle.cpp ครับ เช่นในตัวอย่่างข้างล่างนี้ผมจะ import class ดังกล่าวเข้าไปในไฟล์ test3.cpp ครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: