Được sự giúp đỡ, hướng dẫn của thầy các thành viên của nhóm 8BIT đã cùng
nhau thảo luận,nghiên cứu dịch sách “T each Y ourselt C++, Third Editon” nghĩa
là ”Tự Học C++, ấn bản 3” của tác giả Herbert Schildt. Đây là một cuốn sách rất
hay , dễ hiểu và rất hữu ích cho việc học tập bộ môn này cũng như các bộ môn sau
này . Đặc biệt là những ai mới bước vào con đường trở thành lập trinh viên quốc
tếhaymộtchuyên viênphần mềm, PhươngPháp Lập Trình Hướng Đối Tượngnó
định hướng cho người lập trình một cách tổng quan về lập trình. Đối với những
sinh viêntrong giai đoạn đạicươngthì nó đixuyênsuốt bốn nămhọc.
Các thành viên của nhóm đã cố gắng nhưng cũng không tránh khỏi những sai sót
do thiếu kinh nghiệm dịch sách, mong thầy và quí vị độc giả thông cảm. Để cho
cuốn sách được hoàn thiên rất mong sự góp ý của các độc giả. Nhóm 8BIT xin
chânthành cảmơn
              
                                            
                                
            
 
            
                 872 trang
872 trang | 
Chia sẻ: oanh_nt | Lượt xem: 2712 | Lượt tải: 3 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Cuốn sách Tự Học C++, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TPHCM
KHOA: CÔNG NGHỆ THÔNG TIN
LỚP 06C2
******
 BÀI DỊCH
“TEACH YOURSELF C++” – THIRD 
EDITION
GVHD: Th.s.NGUYỄN TẤN TRẦN MINH KHANG
MÔN : PP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
NHÓM THỰC HIỆN: 8BIT
1.Trịnh Văn Long 0612229
2.Đoàn Minh Bảo Long 0612231
3.Hà An Phong 0612330
4.Trần Quang long 0612227
5.Nguyễn Thành Long 0612223
6.Nguyễn Văn Năm 0612326
7.Đỗ Trọng Long 0612232
8. Dương Huỳnh nghĩa 0612285
1
LỜI MỞ ĐẦU
***
Được sự giúp đỡ, hướng dẫn của thầy các thành viên của nhóm 8BIT đã cùng 
nhau thảo luận,nghiên cứu dịch sách “Teach Yourselt C++, Third Editon” nghĩa 
là ”Tự Học C++, ấn bản 3” của tác giả Herbert Schildt. Đây là một cuốn sách rất 
hay, dễ hiểu và rất hữu ích cho việc học tập bộ môn này cũng như các bộ môn sau 
này . Đặc biệt là những ai mới bước vào con đường trở thành lập trinh viên quốc 
tế hay một chuyên viên phần mềm, Phương Pháp Lập Trình Hướng Đối Tượng nó 
định hướng cho người lập trình một cách tổng quan về lập trình. Đối với những 
sinh viên trong giai đoạn đại cương thì nó đi xuyên suốt bốn năm học.
Các thành viên của nhóm đã cố gắng nhưng cũng không tránh khỏi những sai sót 
do thiếu kinh nghiệm dịch sách, mong thầy và quí vị độc giả thông cảm. Để cho 
cuốn sách được hoàn thiên rất mong sự góp ý của các độc giả. Nhóm 8BIT xin 
chân thành cảm ơn. 
 Nhóm 8BIT
2
MỤC LỤC
CHƯƠNG 1........................................................................................................................6
 AN OVERVIEW OF C++ - TỔNG QUAN VỀ C++...................................................6
1.1. WHAT IS OBJECT-ORIENTED PROGRAMMING ?- LẬP TRÌNH HƯỚNG 
ĐỐI TƯỢNG LÀ GÌ ?...................................................................................................10
1.2. TWO VERSIONS OF C++ - HAI PHIÊN BẢN CỦA C++...................................18
1.3. C++ CONSOLE I / O - BÀN GIAO TIẾP NHẬP/XUẤT C++..........................28
1.4. C++ COMMENTS – LỜI CHÚ GIẢI TRONG C++.............................................38
1.5. CLASSSES: A FIRST LOOK - LỚP : CÁI NHÌN ĐẦU TIÊN ............................40
1.6. SOME DIFFERENCE BETWEENCE AND C++ - MỘT SỐ KHÁC BIỆT GIỮA 
C VÀ C++......................................................................................................................50
1.7. INTRODUCING FUNCTION OVERLOADING - DẪN NHẬP SỰ NẠP 
CHỒNG HÀM:..............................................................................................................58
1.8. C++ KEYWORDS – TỪ KHÓA TRONG C++ ...................................................66
CHƯƠNG 2......................................................................................................................69
 Giới Thiệu Lớp (Introducing Classes)........................................................................69
2.2. CONSTRUCTORS THAT TAKE PARAMETERS - THAM SỐ CỦA HÀM TẠO 
........................................................................................................................................84
2.3. INTRODUCING INHERITANCE - GIỚI THIỆU TÍNH KẾ THỪA:..................96
1.4. OBJECT POINTERS - CON TRỎ ĐỐI TƯỢNG:...............................................109
1.6. IN-LINE FUNCTION - HÀM NỘI TUYẾN:.....................................................126
1.7. AUTOMATIC IN-LINING - HÀM NỘI TUYẾN TỰ ĐỘNG:...........................132
CHAPTER 3...................................................................................................................141
A CLOSER LOOK AT CLASSES - Xét Kỹ Hơn Về Lớp.........................................141
1.1. Assigning Objects - Gán đối tượng:......................................................................143
1.2. PASSING OBJECTS TO FUNCTIONS – Truyền các đối tượng cho hàm:.........155
1.3. RETURNING OBJECT FROM FUNCTIONS – Trả về đối tượng cho hàm:......167
CHƯƠNG 4....................................................................................................................194
ARRAYS, POITERS, AND REFERENCES - Mảng, con trỏ và tham chiếu...........194
1.1. ARRAYS OF OBJECTS - MẢNG CÁC ĐỐI TƯỢNG......................................197
1.2. USING POINTERS TO OBJECTS – Sử dụng con trỏ đối tượng:.......................206
1.4. USING NEW AND DELETE - Cách dùng toán tử new và delete:......................215
1.5. MORE ABOUT NEW AND DELETE - Mở Rộng của new và delete:................220
1.6. REFERENCES - Tham chiếu:..............................................................................229
1.7. PASSING REFERENCES TO OBJECTS – Truyền tham chiếu cho đối tượng:..237
1.8. RETURNING REFERENCES - Trả về tham chiếu:............................................243
1.9. INDEPENDENT REFERENCES AND RESTRICTIONS - THAM CHIẾU ĐỘC 
LẬP VÀ NHỮNG HẠN CHẾ :...................................................................................250
CHAPTER 5...................................................................................................................257
FUNCTION OVERLOADING – Nạp chồng hàm.....................................................257
5.1. OVERLOADING CONSTRUCTOR FUNCTIONS - QÚA TẢI CÁC HÀM TẠO:
......................................................................................................................................260
5.2. CREATING AND USING A COPY CONSTRUCTOR - TẠO VÀ SỬ DỤNG 
HÀM TẠO BẢN SAO:...............................................................................................270
5.3. THE OVERLOAD ANACHRONISM - Sự Lỗi Thời Của Tứ khóa Overload:...288
3
5.4. USING DEFAULT ARGUMENTS - Sử dụng các đối số mặc định:...................289
5.5. OVERLOADING AND AMBIGUITY - SỰ QUÁ TẢI VÀ TÍNH KHÔNG XÁC 
ĐỊNH:..........................................................................................................................302
5.6. FINDING THE ADDRESS OF AN OVERLOADED FUNCTION - TÌM ĐỊA 
CHỈ CỦA MỘT HÀM QUÁ TẢI:...............................................................................309
CHƯƠNG 6....................................................................................................................320
INTRODUCING OPERATOR OVERLOADING ....................................................320
GIỚI THIỆU VỀ NẠP CHỒNG TOÁN TỬ...............................................................320
THE BASICS OF OPERATOR OVERLOADING - CƠ SỞ CỦA QUÁ TẢI TOÁN 
TỬ................................................................................................................................323
OVERLOADING BINARY OPERATORS - QUÁ TẢI TOÁN TỬ NHỊ NGUYÊN.326
OVERLOADING THE RELATIONAL AND LOGICAL OPERATORS - QUÁ TẢI 
CÁC TOÁN TỬ QUAN HỆ VÀ LUẬN LÝ...............................................................339
OVERLOADING A UNARY OPERATOR - QUÁ TẢI TOÁN TỬ ĐƠN NGUYÊN
......................................................................................................................................343
6.5. USING FRIEND OPERATOR FUNCTION - SỬ DỤNG HÀM TOÁN TỬ 
FRIEND.......................................................................................................................350
6.6. A CLOSER LOOK AT THE ASSIGNMENT OPERATOR - Một Cái Nhìn Về 
Toán Tử Gán................................................................................................................362
6.7. OVERLOADING THE [ ] SUBSCRIPT OPERATOR - QUÁ TẢI CỦA TOÁN 
TỬ [ ] CHỈ SỐ DƯỚI .................................................................................................368
CHƯƠNG 7 ...................................................................................................................384
INHERITANCE - TÍNH KẾ THỪA............................................................................384
1.1. BASE CLASS ACCESS CONTROL – ĐIỀU KHIỂN TRUY CẬP LỚP CƠ SỞ
......................................................................................................................................390
1.2. USING PROTECTED MEMBERS - SỬ DỤNG CÁC THÀNH VIÊN ĐƯỢC 
BẢO VỆ.......................................................................................................................404
1.3. CONSTRUCTORS, DESTRUCTORS, AND INHERITANCE - HÀM TẠO, 
HÀM HỦY VÀ TÍNH KẾ THỪA...............................................................................413
1.4. MULTIPLE INHERITANCE - TÍNH ĐA KẾ THỪA ......................................432
1.5. VIRTUAL BASE CLASSES - CÁC LỚP CƠ SỞ ẢO......................................448
CHƯƠNG 8....................................................................................................................468
INTRODUCING THE C++ I/O SYSTEM - DẪN NHẬP HỆ THỐNG NHẬP/XUẤT 
C++..................................................................................................................................468
1.1. SOME C++ I/O BASICS - Cơ sở Nhập/Xuất C++..............................................474
1.2. FORMATTED I/O - Nhập/Xuất Có Định Dạng...................................................478
1.3. USING WIDTH( ), PRECISION( ), AND FILL( ) – SỬ DỤNG HÀM WIDTH(), 
PRECISION( ), VÀ FILL( ):.......................................................................................493
1.4. USING I/O MANIPULATORS – SỬ DỤNG BỘ THAO TÁC NHẬP XUẤT...499
1.5. CREATING YOUR OWN INSERTERS – TẠO BỘ CHÈN VÀO:.....................506
1.6. CREATING EXTRACTORS – TẠO BỘ CHIẾT:...............................................517
CHAPTER 9...................................................................................................................526
ADVANCE C++ I/O – NHẬP XUẤT NÂNG CAO CỦA C++...................................526
9.1. CREATING YOUR OWN MANIPULATORS – TẠO CÁC THAO TÁC RIÊNG
......................................................................................................................................529
9.2. FILE I/O BASICS – NHẬP XUẤT FILE CƠ BẢN............................................536
4
9.3. UNFORMATTED, BINARY I/O - NHẬP XUẤT NHỊ PHÂN KHÔNG ĐỊNH 
DAṆG..........................................................................................................................548
9.4. MORE UNFORMATTED I/O FUNCTIONS - THÊM MỘT SỐ HÀM 
NHẬP/XUẤT KHÔNG ĐƯỢC ĐịNH DẠNG...........................................................559
9.5. RANDOM ACCESS - TRUY XUẤT NGẪU NHIÊN.........................................566
9.6. CHECKING THE I/O STATUS - KIỂM TRA TRẠNG THÁI I/O......................572
9.7. CUSTOMIZED I/O AND FILES - FILE VÀ I/O THEO YÊU CẦU..................578
CHAPTER 10.................................................................................................................585
 VIRTUAL FUNCTIONS - HÀM AỎ........................................................................585
10.2. INTRODUCTION TO VIRTUAL FUNCTIONS – TỔNG QUAN VỀ HÀM ẢO
......................................................................................................................................591
10.3. MORE ABOUT VIRTUAL FUNCTIONS - NÓI THÊM VỀ HAM̀ AỎ..........605
10.4. APPLYING POLYMORPHISM - ÁP DUṆG ĐA HÌNH.................................612
CHAPTER 11.................................................................................................................628
TEMPLATES AND EXCEPTION HANDLING - NHỮNG BIỂU MẪU VÀ TRÌNH 
ĐIỀU KHIỂN BIỆT LỆ................................................................................................628
11.1. GENERIC FUNCTIONS – NHỮNG HÀM TỔNG QUÁT...............................630
11.2. GENERIC CLASSES – LỚP TỔNG QUÁT......................................................641
11.3. EXCEPTION HANDLING- ĐIỀU KHIỂN NGOẠI LỆ...................................653
11.4. MORE ABOUT EXCEPTION HANDLING - TRÌNH BÀY THÊM VỀ ĐIỀU 
KHIỂN NGOẠI LỆ.....................................................................................................665
11.5. HANDLING EXCEPTIONS THROWN - SỬ DỤNG NHỮNG NGOẠI LỆ 
ĐƯỢC NÉM................................................................................................................679
CHAPTER 12.................................................................................................................689
RUN-TIME TYPE IDENTIFICATION AND THE CASTING OPERATORS – 
KIỂU THỜI GIAN THỰC VÀ TOÁN TỬ ÉP KHUÔN............................................689
13.1. UDERSTANDING RUN-TIME TYPE IDENTIFICATION (RTTI) - TÌM HIỂU 
VỀ SỰ NHẬN DẠNG THỜI GIAN THỰC ..............................................................692
1.2. USING DYNAMIC_CAST – SỬ DỤNG DYNAMIC_CAST............................714
1.3. USING CONST_CAST, REINTERPRET_CAST, AND STATIC_CAST - CÁCH 
DÙNG CONST_CAST, REINTEPRET_CAST VÀ STATIC_CAST.........................727
CHAPTER 13 ................................................................................................................737
NAMESPACES, CONVERSION FUNCTIONS, AND MISCELLANEOUS TOPICS 
- NAMESPACES, CÁC HÀM CHUYỂN ĐỔI VÀ CÁC CHỦ ĐỀ KHÁC NHAU.737
13.1. NAMESPACES..................................................................................................739
13.2. CREATING A CONVERSION FUNCTION – TẠO MỘT HÀM CHUYỂN ĐỔI
......................................................................................................................................756
13.3. STATIC CLASS AND MEMBERS – LỚP TĨNH VÀ CÁC THÀNH PHẦN...762
13.4. CONST MEMBER FUNCTIONS AND MUTABLE - HÀM THÀNH PHẦN 
KHÔNG ĐỔI VÀ CÓ THỂ THAY ĐỔI.....................................................................773
13.5. A FINAL LOOK AT CONSTRUCTORS - CÁI NHÌN CUỐI CÙNG VỀ HÀM 
......................................................................................................................................779
13.6. USING LINKAGE SPECIFIERS AND THE ASM KEYWORD......................786
13.7. ARRAY-BASE I/O – MẢNG – CƠ SỞ NHẬP/XUẤT......................................791
CHAPTER 14.................................................................................................................800
INTRODUCING THE STANDARD TEMPLATE LIBRARY – GIỚI THIỆU VỀ 
5
THƯ VIỆN GIAO DIỆN CHUẨN...............................................................................800
14.1. AN OVERVIEW OF THE STANDARD TEMPLATE LIBRARY – TỔNG 
QUAN VỀ THƯ VIỆN GIAO DIỆN CHUẨN...........................................................804
THE CONTAINER CLASSES – LỚP CONTAINER.................................................809
14.3.VECTORS............................................................................................................811
LISTS - DANH SÁCH................................................................................................823
14.4.MAPS - BẢN ĐỒ:...............................................................................................836
14.5.ALGORITHMS - Những thuật giải.....................................................................846
14.6.THE STRING CLASS - Lớp Chuỗi....................................................................857
CHƯƠNG 1
 AN OVERVIEW OF C++ - TỔNG QUAN VỀ 
C++
Chapter object :
1.1. WHAT IS OBJECT-ORIENTED PROGRAMMING ?.
Lập Trình Hướng Đối Tượng Là Gì ?
1.2. TWO VERSIONS OF C++.
Hai Phiên Bản C++
1.3. C++ COMMENTS I/O
Nhập / Xuất C++
1.4. C++ COMMENTS.
Lời Nhận Xét C++
1.5. CLASSES: A FIRST LOOK.
6
LỚP : Cái Nhìn Đầu Tiên.
1.6. SOME DIFFERENCE BETWEEN C AND C++.
Một Số Khác Biệt Giữa C và C++.
1.7. INTRODUCING FUNCTION OVERLOADING.
Dẫn Nhập Sự Quá Tải Hàm.
1.8. C++ KEYWORDS SHILLS CHECK.
Các Từ Khóa Trong C++.
C++ is an enhanced version of C language. C++ includes everything that 
is part of C and adds support for object-oriented programming (OOP for 
short). In addition to, C++ contains many improvements and features that 
simply make it a “better C”, independent of object-oriented programming. 
With very few, very minor exceptions, C++ is a superset of C. While 
everything that you know about the C language is fully applicable to C++, 
understanding its enhanced features will still require a significant 
investment of time and effort on your part. However, the rewards of 
programming in C++ will more than justify the effort you put forth.
C++ là một phiên bản của ngôn ngữ C. C++ bao gồm những phần có trong C 
và thêm vào đó là sự hỗ trợ cho Lập trình hướng đối tượng (viết tắt là OOP). 
Cộng thêm vào đó, C++ còn chứa những cải tiến và những cải tiến mà đơn 
giản nhưng đã tạo ra một “phiên bản C tốt hơn”, không phụ thuộc vào phương 
pháp lập trình hướng đối tượng. Với rất ít riêng biệt, C++ có thể xem là tập 
cha của C. Trong khi những gì bạn biết về C thì hoàn toàn có thể thực hiện 
trong C++, thì việc hiểu rõ những tính năng của C++ cũng đòi hỏi một sự đầu 
tư thích đáng về thời gian cũng như nỗ lực của chính bản thân bạn. Tuy nhiên, 
phần thưởng cho việc lập trình bằng C++ là sẽ ngày càng chứng minh được 
năng lực của bản thân bạn hơn với những gì bạn đã thể hiện.
The purpose of this chapter is to introduce you to several of the most 
important features of C++. As you know, the emplements of a computer 
language do not exist in a void, separate from one another. Instead, they 
work together to form the complete language. This interrelatedness is 
especially pronounced in C++. In fact, it is difficult to discuss one aspect of 
7
C++ in isolation because the features of C++ are highly integrated. To help 
overcome this problem, this chapter provides a brief overview of several 
C++ features. This overview will enable you to understand the examples 
discussed later in this book. Keep in mind that most topics will be more 
thoroughly explored in later chapters.
Mục tiêu của chương này là giới thiệu cho bạn 1 số tính năng quan trọng nhất 
của C++. Như bạn biết đó, những thành phần của ngôn ngữ máy tính thì 
không cùng tồn tại trong 1 khoảng không, mà tách biệt với những cái khác, 
thay vì làm việc cùng nhau để tạo thành một ngôn ngữ hoàn chỉnh. Mối tương 
quan này được đặc biệt phát biểu trong C++. Sự thật là rất khó để thảo luận về 
một diện mạo của C++ trong sự cô lập bởi vì những tính năng của C++ đã 
được tích hợp cao độ. Để giúp vượt qua vấn đề này, chương này cung cấp một 
cái nhìn ngắn gọn về một số tính năng của C++. Cái nhìn tổng quan này sẽ 
giúp bạn hiểu hơn về những thí dụ mà chúng ta sẽ thảo luận ở phần sau cuốn 
sách. Hãy ghi nhớ tất cả những đề mục chúng sẽ giúp bạn hiểu thấu đáo 
những chương tiếp theo.
Since C++ was invented to support object-oriented programming this 
chapter begins with a decriptions of OOP. As you will see, many features 
of C++ are related to OOP in one way or another. In fact, the theory of 
OOP permeates C++. However, it is important to understand that C++ 
can be used to write programs that are and are not object oriented. How 
you use C++ is completely up to you.
Vì C++ được thiết kế ra để hỗ trợ cho việc lập trình hướng đối tượng, nên 
chương này chúng ta bắt đầu với việc mô tả về lập trình hướng đối tượng 
(OOP). Rồi bạn sẽ thấy rằng những tính năng khác của C++ cũng lien quan tới 
OOP bằng cách này hay cách khác. Sự thật là lý thuyết về lập trình hướng đối 
tượng được trải dàn trong C++. Tuy nhiên, phải hiểu rằng việc dùng C++ để 
viết chương trình thì có hoặc không có “hướng đối tượng”. Việc sử dụng C++ 
như thế nào là hoàn toàn phụ thuộc vào bạn.
At the time of this writing, the standardization of C++ is being finalized. 
For this reason, this chapter describes some important differences between 
versions of C++ that have been in common use during the past several 
years and the new Standard C++. Since this book teaches Standard C++, 
this material is especially important if you are using an older compiler.
Vào thời điểm viết cuốn sách này thì việc chuẩn hóa C++ đang được 
hoàn tất. Vì lý do đó chương này sẽ mô tả những sự khác biệt quan trọng giữa 
hai phiên bản của C++ mà đã từng được dung phổ biến trong những năm 
8
trước đây và tiêu chuẩn mới trong C++. Vì cuốn sách này dạy về Tiêu chuẩn 
C++, nên tài liệu này sẽ đặc biệt quan trọng nếu bạn sử dụng những trình biên 
dịch cũ.
In addition to introducing several important C++ features, this chapter also 
discusses some differences between C and C++ programming styles. There 
are several aspects of C++ that allow greater flexibility in the way that you 
are write programs. While some of these features have little or nothing to do 
with object-oriented programming, they are found in most C++ programs, 
so it is appropriate to discuss them early in this book.
Thêm vào việc giới thiệu một số tính năng quan trọng trong C++, 
chương này cũng thảo luận về những khác biệt giữa hai phong cách lập trình 
C và C++. Ở đây có vài yếu tố của C++ cho phép nó có tính linh động hơn 
trong việc viết chương trình. Trong khi những yếu tố này thì rất ít hoặc không 
có để lập trình hướng đối tượng thì nó được tìm thấy hầu như đầy đủ trong 
những chương trình của C++, vì thế sẽ thật thỏa đáng nếu thảo luận về chúng 
trong khởi đầu quyển sách này.
Before you begin, a few general comments about the nature and form of 
C++ are in order. First, for the most part, C++ programs physically look 
like C programs. Like a C program, a C++ program begins execution at 
main( ). To include command-line arguments, C++ uses the same argc, 
argv convention that C uses. Although C++ defines its own, object-oriented 
library, it also supports all the functions in the C standard library. C++ 
uses the same control structures as C. C++ includes all of the built-in data 
types defined by C.
Trước khi bạn bắt đầu, một vài chú giải tổng quát về bản chất và biểu 
mẫu sẽ đưa ra trong trình tự. Đầu tiên, dành cho hầu hết các phần, theo cái 
nhìn lý tính thì các chương trình C++ trông như các chương trình C. Cũng như 
C, một chương trình C++ cũng bắt đầu thi hành bởi hàm main(). Để bao gồm 
những đối số bằng cơ chế dòng lệnh (command-line), C++ cũng sử dụng quy 
ước argc, argv mà C dùng. Mặc dù C++được định nghĩa với những sở hữu 
bản thân, thư viện hướng đối tượng (object-oriented), nó cũng hỗ trợ những 
hàm trong thư viện chuẩn của C. C++ sử dụng cấu trúc điều khiển như C. C++ 
cũng bao gồm nhưng kiểu dữ liệu được xây dựng trong C.
9
This book assumes that you already know the C programming language. In 
other words, you must be able to program in C before you can learn to 
program in C++ by using this book. If you don’t knowC, a good starting 
place is my book Teach Yourseft C, Third Edition (Berkeley: 
Osborne/McGraw-Hill, 1997). It applies the same systematic approach used 
in this book and thoroughly covers the entires C language.
Quyển sách này xem như bạn đã biết về ngôn ngữ lập trình C. Nói 
cách khác bạn phải biết lập trình trong C trước khi bạn học những chương 
trình C++ được viết trong cuốn sách này. Nếu bạn chưa biết về C, hãy bắt đầu 
với cuốn sách Teach yourseft C, Third Edition (Berkeley: Osborne/McGraw-
Hill, 1997).Việc ứng dụng cách tiếp cận có hệ thống được sử dụng trong cuốn 
sách này sẽ bao phủ toàn vẹn ngôn ngữ C.
Note: 
This book assumes that you know how to compile and execute a program 
using your C++ compiler. If you don’t, you will need to refer to your 
compiler’s instructions. (Because of the differences between compilers, it is 
impossible to give compolation instructions for each in this book). Since 
programming is best learned by doing, you are strongly urged to enter, 
compile, and run the examples in the book in the order in which they are 
presented.
Chú ý:
 Cuốn sách này cho rằng bạn đã biết biên dịch và thực thi một chương trình bằng 
trình biên dịch C++. Nếu chưa, bạn sẽ cần nhiều sự hướng dẫn hơn bởi trình biên 
dịch của bạn. (Bởi vì những sự khác nhau giữa các trình biên dịch, sẽ là không 
khả thi khi đưa ra những sự hướng dẫn về sự biên dịch trong cuốn sách này.) Vì 
chương trình là bài học thực hành tốt nhất, nên bạn cần phải mạnh mẽ tiến đến, 
biên dịch và chạy thử những ví dụ trong cuốn sách này để biết dược cái gì đang 
hiện diện đằng sau những ví dụ ấy.
1.1. WHAT IS OBJECT-ORIENTED PROGRAMMING ?- LẬP TRÌNH 
HƯỚNG ĐỐI TƯỢNG LÀ GÌ ?
Object-oriented programming is a powerful way to approach the task of 
10
programming. Since its early beginnings, programming has been governed by 
various methodologies. At each critical point in the evolution of programming, a new 
approach was created to help the programmer handle increasingly complex 
programs. The first programs were created by toggling switches on the front panel of 
the computer. Obviously, this approach is suitable for only the smallest programs. 
Next, assembly language was invented, which allowed longer programs to be 
written. The next advance happened in the 1950s when the first high-level language 
(FORTRAN) was invented.
Lập trình hướng đối tượng là con đường mạnh mẽ để tiếp cận nhiệm vụ lập 
trình. Từ buổi bình minh, lập trình đã bị
            Các file đính kèm theo tài liệu này:
 49186580_6818696_tu_hoc_c.pdf 49186580_6818696_tu_hoc_c.pdf