Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword
Like this
32Activity
×
0 of .
Results for:
No results containing your search query
P. 1
PHONG CÁCH LẬP TRÌNH C++

PHONG CÁCH LẬP TRÌNH C++

Ratings:

5.0

(2)
|Views: 6,945|Likes:
Published by river11576
Tài liệu này là bản gốc chưa có chữ ký cá nhân biên soạn bởi river11576@gmail.com, xin để lại nguồn khi trích dẫn.
Tài liệu này là bản gốc chưa có chữ ký cá nhân biên soạn bởi river11576@gmail.com, xin để lại nguồn khi trích dẫn.

More info:

Published by: river11576 on Apr 23, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See More
See less

05/27/2013

pdf

text

original

 
1 |
Phong cách l
ập tr 
 ình C++
 
PHONG CÁCH L
 ẬP TR 
ÌNH C++
 
B
ạn đang học lập tr 
ình, v
ậy bạn nghĩ về một chương tr 
ình máy tính nh
ư thế n 
ào?
 
M
ột chương tr 
ình máy tính có th
ể xem như một tác phẩm, bởi v 
ì nó
được đọc bởi bạn (có thể bây giờ,
mà c
ũng có thể là 10 năm sau!), và bởi những lập tr 
ình viên khác sau b
ạn (để phát triển, sửa chửa,
c
ập nhật ...). Chính v 
ì l
ẽ đó, một chương tr 
ình máy tính nên
đáp ứng cả 3 y 
êu c
ầu sau: đúng, dễ đọc 
và d
ễ hiểu.
 
M
ục đích của style là làm cho chương tr 
ình tr
ở n 
ên d
ễ đọc đối với người viết v 
à nh
ững người khác,
m
ột style tốt l 
à m
ột phần thiết yếu của việc lập tr 
ình t
ốt. Viết một chương tr 
ình ch
ạy đúng là chưa đủ 
b
ởi chương tr 
ình không ch
ỉ để cho máy tính đọc m 
à còn
để các lập tr 
ình viên khác
đọc. Hơn nữa, một chương tr 
ình có style t
ốt luôn có nh 
i
ều khả năng chạy đúng hơn một chương tr 
ình có style t
ồi.
 
Tài li
ệu n
ày cung c
ấp cho bạn:
 1. M
ột tập hợp các chuẩn tr
ình bày ch
ương tr
ình thông d
ụng.
2. M
ột thói quen để từ đó bạn có một phong cách lập tr
ình t
ương đối chuy
ên nghi
ệp.
Tuy nhiên, tài li
ệu n
ày không có tham v
ọng đề cập đến to
àn b
ộ các khía cạnh của một phong cách lập
trình. Nó ch
ỉ nói đến những g
ì c
 ần thiết để cho bạn, một sinh viên, khi chưa t
ìm
được một phong cách
phù h
ợp tạo được những thói quen tốt ngay từ đầu.
T
ổ chức chương tr
ình
1. Môđun hóa chương tr
ình c
ủa bạnChương tr
ình c
ủa bạn nên được tách th
ành nhi
 ều môđun, mỗi môđun thực hiện một công việc và càng độc lập với
nhau càng t
ốt. Điều n
ày s
ẽ giúp bạn dễ bảo dưỡng chương tr
ình h
ơn và khi đọc chương tr
ình, b
ạn k 
hông ph
ải đọc
nhi
 ều, nhớ nhiều các đoạn lệnh nằm rải rác để hiểu được điều g
ì
đang được thực hiện.
Khi mu
ốn chuyển thông tin cho các chương tr
ình con, b
ạn n
ên s
ử dụng các tham số. Tránh sử dụng các biến to
àn c
ụcđể chuyển thông tin giữa các chương tr
ìn
h con. làm như vậy bạn sẽ triệt tiêu tính độc lập giữa các chương tr
ình convà r
ất khó khăn khi kiểm soát giá trị của chúng khi chương tr
ình thi hành. (Chú ý, b
ạn n
ên phân bi
ệt giữa biến to
ànc
ục v
à h
ằng số to
àn c
ục)
2
. Định nghĩa và cài đặt của các lớp
ph
ải được chia th
ành nhi
 ều file để ta có thể dễ d
àng tái s
ử dụng.
Định nghĩa các
l
ớp được lưu trong các file header với mở rộng *.h. Cài đặt của các th
ành viên c
ủa lớp lưu trong file
ngu
 ồn với mở rộng *.cpp.
 
Thông thường mỗi lớp có một cặp file *.H v
à *.CP
P, nhưng có thể gộp các lớp có li
ênquan vào m
ột cặp file.Cuối mỗi file *.H l
à ch
ỉ thị #include đến file *.CPP.Cuối mỗi file *.CPP là các "chương tr
ình
chính" dùng để test file CPP đó k 
èm theo các #define thích h
ợp cho việc test. Chương tr
ình chính
được lư 
u trong m
ột
 
2 |
Phong cách l
ập tr 
 ình C++
 
file ngu
 ồn ri
êng và include các file header c
ủa các lớp được dùng đến.
3. M
ỗi file header của lớp n
ên s
ử dụng các định hướng #ifndef, #define, và #endif để đảm bảo mỗi file header chỉđược include 1 lần. Ký hiệu được #define n
ên là tênc
ủa fi
le header vi
ết to
àn b
ằng chữ hoa với một dấu gạch dưới ( _ ) thay cho dấu chấm.
 Ví d
ụ:
 //counter.h #ifndef COUNTER_H#define COUNTER_Hclass
 
Counter{
 
 //...};  // end Counter #include "counter.cpp" #endif // COUNTER_H 
Chu
ẩn t
ài li
ệu
 
1. S
ử dụng // cho các chú thích. Chỉ dùng /* */ để tạm thời vô hiệu hóa các đoạn chương tr
ình
để test v
à debug.2. M
ỗi file nguồn, cả .CPP và .H, đều phải bắt đầu bằng một khối chú thích đủ để người
 
đọc có thể kết nối các file nếu
chúng b
ị tách ra. Mẫu như sau:
 
 //--------------------------------------------------------------------- // Name: H
ọ t
ên // Class: L
ớp
 // Project: mô t
ả/t
ên d
ự án (một d
òng, gi
ống nhau tại mọi file)
 // Purpose: M
ục đích sử dụng của m
ã ch
ương tr
ình ho
ặc các khai báo trong file n
ày //--------------------------------------------------------------------- M
ỗi lớp, hàm, phương thức phải có một khối chú thích mô tả ngắn gọn lớp, hàm, phương thức đó l
àm gì;
đối
v
ớihàm/phương thức: liệt k 
ê t
ất cả các tham số, n
êu rõ ý ngh
 ĩa của tham số; v
à mô t
ả điều kiện trước v
à sau c
ủahàm/phương thức đó.Chọn các t
ên có ngh
 ĩa sẽ đơn giản hóa các chú thích.Lưu
ý, tài li
ệu về phương thức đặt tại định nghĩa lớp (*.H) ta có thể 
sao chép tài li
ệu đó vào file *.CPP nhưng không
b
ắt buộc.
 
3 |
Phong cách l
ập tr 
 ình C++
 
3. Có th
ể chú thích các đoạn code b
ên trong hàm, tuy nhiên ch
ỉ nên chú thích đủ hiểu. Quá nhiều chú thích v
à chúthích th
ừa l
àm code trông r
ối. Tất cả các chú thích phải được lùi đầu d
òng cùng
đoạn code quanh nó.
Tên:
 
S
ử dụng các t
ên có ngh
 ĩa.
Tên giàu tính mô t
ả cho các biến to
àn c
ục v
à tên ng
ắn gọn cho các biến cục bộ.
Têncó ngh
 ĩa sẽ giúp chương tr
ình d
ễ viết v
à d
ễ debug hơn. Nếu bạn phải d
ùng tên không có ngh
 ĩa cho một cái g
ì
đó th
ìcó th
ể bạn chưa hoàn toàn hiểu b
ài toán mình
đang giải. H
ãy c
ố hiểu r
õ tr
ước khi tiếp tục lập tr
ình.
 
Theo thôngl 
ệ, các tên i và j được d 
ành cho các ch 
ỉ số, p v 
à q dành cho các con tr 
ỏ, s v 
à t dành cho các 
 xâu.Người ta d 
ùng các tên b 
ắt đầu hoặc kết t 
húc b 
ởi chữ “p” cho các biến con trỏ (chẳng hạn nodep, intp,
intpp, doublep), các tên b 
ắt đầu bằng chữ hoa cho biến to
àn c 
ục (chẳng hạn Globals) v 
à t 
ất cả chữ cái hoa
cho các h 
ằng số (chẳng hạn CONSTANTS).
 
Khuy
ến cáo
 
s
ử dụng t
ên ti
ếng Anh kiểu camel (xem bên dưới)
 
Các namespace trong C++ góp ph
 ần l
àm rõ
ngh
 ĩa của các t
ên mà không c
ần sử dụng các t
ên dài.
 
 Đặt t
ên m
ột cách nhất quán
 
Các bi
ến có li
ên quan ph
ải được đặt các tên có liên quan, đồng thời phải l
àm n
ổi bật được sự khác nhau của chúng.
Các tên trong l
ớp sau đây vừa quá d
ài v
ừa không hề nhất quán:
 
classUserQueue{intnoOfItemsInQ,frontOfTheQueue,queueCapacity; public intnoOfUsersInQueue() {...} };Th
ứ nhất, c
ùng m
ột nội dung là queue nhưng được biểu diễn bởi ba dấu hiệu: Q,
Queue và queue. Th
ứ hai, các biến
và các hàm thành ph
 ần của lớp UserQueue chỉ có thể được sử dụng bởi các đối tượng của lớp n
ày, do v
ậy viết
 
queue.queueCapacityhayqueue.noOfUsersInQueue() rõ ràng là th
ừa. Chúng ta có thể viết lại lớp n
ày v
ới các t
ên m
ới như sau:
 classUserQueue{intnitems,front,capacity; public intnusers() {...} }Không ch
ỉ bản thân đoạn m
ã
định nghĩa lớp đó dễ hiểu hơn, mà những đoạn m
ã s
ử dụng lớp UserQueue cũng dễ hiểuhơn:
 

Activity (32)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Duy Trong Dao liked this
Đá Dâu Tây liked this
kellyfire liked this
vovanhoait liked this
Duong le Bac liked this
Duong le Bac liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->