Ktl-icon-tai-lieu

Biên dịch riêng rẽ

Được đăng lên bởi phandaobn
Số trang: 7 trang   |   Lượt xem: 859 lần   |   Lượt tải: 0 lần
Smith Nguyen Studio.

Biên dịch
Biên dịch riêng rẽ
Lập trình hướng đối tượng

Biên dịch

n

Chỉ hướng dẫn biên dịch trong môi trường Unix, sinh
viên tự tìm hiểu đối với các môi trường lập trình khác.
Ta sẽ sử dụng g++ để dịch các chương trình C++.

n

g++ foo.cpp
biên dịch foo.cpp cho kết quả là file chạy được a.out

n

g++ -o foo foo.cpp
biên dịch foo.cpp cho kết quả là file chạy được foo

n

@ 2004 Trần Minh Châu. FOTECH. VNU

2

Smith Nguyen Studio.

Biên dịch riêng rẽ
n
n

VD: biên dịch chương trình program.cpp trong đó sử dụng một
lớp có tên Picture để thao tác các hình vẽ
Nên lưu phần cài đặt của lớp Picture trong một file riêng, chẳng
hạn picture.cpp, để:
¨
¨

¨

n

tạo thuận lợi cho việc sử dụng lớp này trong một ứng dụng khác
hai lập trình viên có thể dễ dàng cùng làm việc: một người cài đặt lớp
Picture, người kia viết chương trình chính program.cpp
khi chương trình thay đổi, chỉ cần dịch lại file program.cpp, như vậy,
quá trình biên dịch nhanh hơn. Đối với các chương trình lớn, điều này
tạo sự khác biệt rất lớn.

Chú ý: Theo thông lệ, các file chương trình C++ thường có kiểu mở
rộng ".cpp", ".cc", ".C", hoặc ".cxx".

@ 2004 Trần Minh Châu. FOTECH. VNU

3

File header của lớp: ".h"
n

n

n

Nếu ta không muốn người viết program.cpp biết chi
tiết của lớp Picture (vì đó có thể là bí mật thương
mại), ta cần tách giao diện của lớp (phần khai báo) ra
khỏi cài đặt của lớp.
Mặt khác, để có thể biên dịch được, chương trình chính
program.cpp cũng cần biết về định nghĩa của lớp
Picture và các phương thức của lớp đó.
Giải pháp là mô tả lớp Picture tại hai file
¨
¨

picture.h
picture.cpp

các định nghĩa và khai báo (giao diện)
cài đặt

@ 2004 Trần Minh Châu. FOTECH. VNU

4

Smith Nguyen Studio.

File header của lớp: ".h"
File chứa cài đặt
/* picture.h */
class Picture
{
//...
Picture* frame(const Picture&);
}

File header chứa
giao diện

/* picture.cpp */
#include "picture.h"
Picture* Picture::frame (const Picture& x)
{
//mã để đóng khung một hình ảnh
}

/* program.cpp */
#include "picture.h"
int main()
{
//thao tác các hình ảnh
}
Client/user

@ 2004 Trần Minh Châu. FOTECH. VNU

5

File header của lớp: ".h"
Như vậy, ta có thể viết nhiều chương trình sử dụng
lớp Picture có sẵn một cách tiện lợi

@ 2004 Trần Minh Châu. FOTECH. VNU

6

Smith Nguyen Studio.

Biên dịch riêng rẽ
n

biên dịch chương trình như sau:
1> g++ -c picture.cpp
2> g++ -c program.cpp
3> g++ -o program program.o picture.o
¨ khóa chuyển –c tại dòng 1 và 2 tạo các object file program.o và pict...
Biên dch
Biên dch riêng r
Lp trình hướng đối tượng
@ 2004 Trn Minh Châu. FOTECH. VNU
2
Biên dch
n Ch hướng dn biên dch trong môitrường Unix, sinh
viên t tìm hiu đối vi các môi trường lp trình khác.
n Ta s s dng g++ để dch các chương trình C++.
g++ foo.cpp
n biên dch foo.cpp cho kết qu làfile chy được a.out
g++-o foo foo.cpp
n biên dch foo.cpp cho kết qu làfile chy được foo
Smith Nguyen Studio.
Biên dịch riêng rẽ - Trang 2
Để xem tài liệu đầy đủ. Xin vui lòng
Biên dịch riêng rẽ - Người đăng: phandaobn
5 Tài liệu rất hay! Được đăng lên bởi - 1 giờ trước Đúng là cái mình đang tìm. Rất hay và bổ ích. Cảm ơn bạn!
7 Vietnamese
Biên dịch riêng rẽ 9 10 378