C++ và lập trình hướng đối tượng - Chương
Trang 1lời nói đầu
Lập trình cấu trúc là phơng pháp tổ chức, phân chia chơng trình
thành các hàm, thủ tục, chúng đợc dùng để xử lý dữ liệu nhng lại
tách rời các cấu trúc dữ liệu Thông qua các ngôn ngữ Foxpro,
Pascal, C đa số những ngời làm Tin học đã khá quen biết với phơng
pháp lập trình này
Lập trình hớng đối tợng dựa trên việc tổ chức chơng trình thành
các lớp Khác với hàm và thủ tục, lớp là một đơn vị bao gồm cả dữ
liệu và các phơng thức xử lý Vì vậy lớp có thể mô tả các thực thể
một cách chân thực, đầy đủ cả phần dữ liệu và yêu cầu quản lý T
t-ởng lập trình hớng đối tợng đợc áp dụng cho hầu hết các ngôn ngữ
mới chạy trên môi trờng Windows nh Microsoft Access, Visual
Basic, Visual C Vì vậy việc nghiên cứu phơng pháp lập trình mới
này là rất cần thiết đối với tất cả những ngời quan tâm, yêu thích Tin
học
C ra đời năm 1973 với mục đích ban đầu là để viết hệ điều hành
Unix trên máy tính mini PDP Sau đó C đã đợc sử dụng rộng rãi trên
nhiều loại máy tính khác nhau và đã trở thành một ngôn ngữ lập trình
cấu trúc rất đợc a chuộng
Để đa C vào thế giới hớng hớng đối tợng, năm 1980 nhà khoa học
ngời Mỹ B Stroustrup đã cho ra đời một ngôn ngữ C mới có tên ban
đầu là “C có lớp”, sau đó đến năm 1983 thì gọi là C++ Ngôn ngữ
C++ là một sự phát triển mạnh mẽ của C Trong C++ chẳng những đa
vào tất cả các khái niệm, công cụ của lập trình hớng đối tợng mà còn
đa vào nhiều khả năng mới mẻ cho hàm Nh vậy C++ là một ngôn
ngữ lai cho phép tổ chức chơng trình theo các lớp và các hàm Có thể
nói C++ đã thúc đẩy ngôn ngữ C vốn đã rất thuyết phục đi vào thế
giới lập trình hớng đối tợng và C++ đã trở thành ngôn ngữ hớng đối
tợng nổi bật trong những năm 90
Cuốn sách này sẽ trình bầy một cách hệ thống các khái niệm của
lập trình hớng đối tợng đợc cài đặt trong C++ nh lớp, đối tợng, sự
thừa kế, tính tơng ứng bội và các khả năng mới trong xây dựng, sử
dụng hàm nh: đối tham chiếu, đối mặc định, hàm trùng tên, hàm toán
tử Có một số vấn đề còn ít đợc biết đến nh cách xây dựng hàm với số
đối bất định trong C cũng sẽ đợc giới thiệu Các chơng từ 1 đến 10
với cách giải thích tỉ mỉ và với gần 100 chơng trình minh hoạ sẽ cung
cấp cho bạn đọc các khái niệm, phơng pháp và kinh nghiệm lập trình
hớng đối tợng trên C++ Mục lục cuối sách sẽ hệ thống ngắn gọn
ph-ơng pháp phân tích, thiết kế và lập trình hớng đối tợng trên bình diện
chung
Cuốn sách gồm 10 chơng và 6 phụ lục
Chơng 1 hớng dẫn cách làm việc với phần mềm TC++ 3.0 để thử nghiệm các chơng trình, trình bầy sơ lợc về các phơng pháp lập trình
và giới thiệu một số mở rộng đơn giản của C++ Chơng 2 trình bầy các khả năng mới trong việc xây dựng và sử dụng hàm trong C++ nh biến tham chiếu, đối có kiểu tham chiếu, đối
có giá trị mặc định, hàm trực tuyến, hàm trùng tên, hàm toán tử Chơng 3 nói về một khái niệm trung tâm của lập trình hớng đối t-ợng là lớp gồm: Định nghĩa lớp, khai báo các biến, mảng đối tt-ợng (kiểu lớp), phơng thức, dùng con trỏ this trong phơng thức, phạm vi truy xuất của các thành phần, các phơng thức toán tử
Chơng 4 trình bầy các vấn đề tạo dựng, sao chép, huỷ bỏ các đối t-ợng và các vấn đề khác có liên quan nh: Hàm tạo, hàm tạo sao chép, hàm huỷ, toán tử gán, cấp phát bộ nhớ cho đối tợng, hàm bạn, lớp bạn
Chơng 5 trình bầy một khái niệm quan trọng tạo nên khả năng mạnh của lập trình hớng đối tợng trong việc phát triển, mở rộng phần mềm, đó là khả năng thừa kế của các lớp
Chơng 6 trình bầy một khái niệm quan trọng khác cho phép xử lý các vấn đề khác nhau, các thực thể khác nhau, các thuật toán khác nhau theo cùng một lợc đồ thống nhất, đó là tính tơng ứng bội và
ph-ơng thức ảo Các công cụ này cho phép dễ dàng tổ chức chph-ơng trình quản lý nhiều dạng đối tợng khác nhau
Chơng 7 nói về việc tổ chức vào - ra trong C++ C++ đa vào một khái niệm mới gọi là các dòng tin (Stream) Các thao tác vào - ra sẽ thực hiện trao đổi dữ liệu giữa bộ nhớ với dòng tin: Vào là chuyển dữ liệu từ dòng nhập vào bộ nhớ, ra là chuyển dữ liệu từ bộ nhớ lên dòng xuất Để nhập xuất dữ liệu trên một thiết bị cụ thể nào, ta chỉ cần gắn dòng nhập xuất với thiết bị đó Việc tổ chức vào ra theo cách nh vậy
là rất khoa học và tiện lợi vì nó có tính độc lập thiết bị
Chơng 8 trình bầy các hàm đồ hoạ sử dụng trong C và C++ Các hàm này đợc sử dụng rải rác trong toàn bộ cuốn sách để xây dựng các đối tợng đồ hoạ
Chơng 9 trình bầy các hàm truy xuất trực tiếp vào bộ nhớ của máy tính, trong đó có bộ nhớ màn hình Các hàm này sẽ đợc sử dụng trong chơng 10 để xây dựng các lớp menu và cửa sổ
Chơng 10 giới thiệu 5 chơng trình tơng đối hoàn chỉnh nhằm minh hoạ thêm khả năng và kỹ thuật lập trình hớng đối tợng trên C++ Phụ lục 1 trình bầy các phép toán trong C++ và thứ tự u của chúng
Phụ lục 2 liệt kê một danh sách các từ khoá của C++
Phụ lục 3 trình bầy bảng mã ASCII và mã quét của các ký tự
Trang 2Phụ lục 4 trình bầy một vấn đề quan trọng nhng còn ít đợc nói đến trong các tài liệu, đó là cách sử dụng con trỏ void để xây dựng các hàm với số đối không cố định giống nh các hàm printf và scanf của C
Vì trong C++ vẫn sử dụng các hàm của C, nên trong phụ lục 5 sẽ giới thiệu tóm tắt hơn 200 hàm để bạn đọc tiện việc tra cứu
Cuối cùng, phụ lục 6 trình bầy một cách ngắn gọn phơng pháp phân tích, thiết kế và lập trình hớng đối tợng trên bình diện chung Khi viết chúng tôi đã hết sức cố gắng để cuốn sách đợc hoàn chỉnh, song chắc chắn không tránh khỏi thiếu sót, vì vậy rất mong nhận đợc sự góp ý của độc giả
Nhân dịp này chúng tôi xin chân thành cám ơn cử nhân Nguyễn Văn Phác đã tận tình giúp đỡ trong việc hiệu đính và biên tập cuốn sách này
Tác giả
5