
เราสามารถแยกโครงสร้าง class และ เนื้อของ class (method ต่างๆใน class) และ ไฟล์ที่มีการใช้งาน class (มีการสร้าง Object ด้านใน) ออกเป็น 3 ไฟล์ และทำการ Compile โดยที่ให้ โครงสร้าง class ที่เป็น header file ไฟล์ (.h) เป็นตัวเชื่อม โดยที่ ไฟล์เนื้อของ class และไฟล์ที่มีการใช้งาน class มีการ include header file
ตัวอย่างไฟล์ โครงสร้าง class (data.h)
#include <iostream>
using namespace std;
class Data{
private:
int a;
public:
Data();
~Data();
void setData(int a);
};
ตัวอย่างไฟล์ เนื้อ class (data.cpp)
#include "data.h"
using namespace std;
Data::Data(){
cout << "Create Object" << endl;
}
Data::~Data(){
cout << "Destroy Object" << endl;
}
void Data::setData(int a){
this->a = a;
cout << "Set Data Complete : a=" << this->a << endl;
}
ตัวอย่างไฟล์ที่มีการใช้งาน class (main.cpp)
#include <iostream>
#include "data.h"
using namespace std;
int main(){
Data D;
D.setData(5);
return 0;
}
ขั้นตอนการ Compile โปรแกรม
1.Compile Object ไฟล์ data.cpp จะได้เป็น data.o
g++ -c data.cpp -o data.o
2.Compile Object ไฟล์ main.cpp จะได้เป็น main.o
g++ -c main.cpp -o main.o
3.Compile Object ไฟล์ ให้เชื่อมกันจะได้เป็นไฟล์ execute (ไว้ใช้รันโปรแกรม) ชื่อ main
g++ data.o main.o -o main
หากเขียนเป็น makefile จะได้ code เป็น
แล้วใช้คำสั่ง make จะได้ไฟล์ main
main: data.o main.o
g++ data.o main.o -o main
data.o:
g++ -c data.cpp -o data.o
main.o:
g++ -c main.cpp -o main.o
clean:
rm *.o main
ขอขอบคุณ อ.วรวิทย์ วีระพันธุ์ ที่ช่วยอธิบายให้นะครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น