Bài 1 : Giới thiệu lập trình C++

Bài 1 : Giới thiệu lập trình C++
access_time 1/25/2018 12:00:00 AM
person quản trị viên

Bài 1 : Giới thiệu ngôn ngữ lập trình C++

1. Tổng quát ngôn ngữ lập trình C++

Ngôn ngữ lập trình C++ được phát triển từ ngôn ngữ C. Nó chính là mở rộng của ngôn ngữ C, có nghĩa là nó được bổ sung các đặc tính mới của ngôn ngữ lập trình hướng đối tượng. Trước đó ngôn ngữ C là ngôn ngữ bậc cao được biết đến với khả năng chạy được trên hầu hết các máy tính và độc lập với phần cứng.

Sử dụng ngôn ngữ lập trình C cho hầu hết các nền tảng phần cứng. Chính vì tính phổ biến này, người ta đã phải thực hiện chuẩn hóa ngôn ngữ lập trình C. Tổ chức ANSI (AmericanNational Standards Institute) và ISO (International Organization

For Standardization) đã kết hợp và tiến hành chuẩn hóa ngôn ngữ này.

C99 là tài liệu chuẩn hóa mới nhất của ngôn ngữ lập trình C, nó được thực hiện năm 1999. Tài liệu này được phát triển nhằm để ngôn ngữ C vẫn giữ lại được các thế mạnh về xử lý đối với phần cứng và đáp ứng yêu cầu của người dùng. C99 cũng làm cho ngôn ngữ C phù hợp hơn với ngôn ngữ C++.

Ngôn ngữ lập trình C++ được phát triển bởi Bjarne Stroustrup vào đầu những năm 80 tại phòng thí nghiệm Bell. C++ so với ngôn ngữ lập trình C có 2 điểm mở rộng như sau :

+ Bổ sung thêm tham chiếu, hàm chồng, tham số mặc định..

+ Hỗ trợ lập trình hướng đối tượng

Ngoài ra nếu không xét đến lập trình hướng đối tượng trong ngôn ngữ C++, thì các lập trình viên ngôn ngữ C hoàn toàn có khả năng code trên ngôn ngữ C++ với các đặc điểm mở rộng như :

+ Cung cấp khả năng viết các dòng chú thích mới.

+ Khả năng khai báo linh hoạt hơn

+ Cho phép định nghĩa lại các hàm, các hàm có thể cùng tên nhưng thực hiện các nhiệm vụ khác nhau. Khi thực hiện gọi hàm, trình biên dịch sẽ phân biệt thông qua kiểu và số tham số truyền vào của hàm để xác định đúng hàm nào thực hiện khi chạy.

+ Bổ sung cách thức cấp phát và thu hồi bộ nhớ động như : new và delete.

+ Cung cấp khả năng định nghĩa các hàm inline để tăng tốc độ thực hiện chương trình.

+ Tạo các biến tham chiếu tới các biến khác.

2. Lập trình hướng đối tượng trong C++

C++ cung cấp cách thức lập trình hướng đối tượng cho các lập trình viên thực hiện một cách dễ dàng. Các đặc trưng chính của ngôn ngữ lập trình hướng đối tượng đều được ngôn ngữ lập trình C++ đáp ứng, bao gồm :

+ Lớp : Lớp trong lập trình hướng đối tượng bao gồm các thành phần dữ liệu như thuộc tính và phương thức, thể hiện của lớp đó chính là các đối tượng, C++ cung cấp cách thức định nghĩa lớp và tạo đối tượng thể hiện lớp một cách dễ dàng thông qua hàm new và sử dụng phương thức khởi tạo của lớp. Phương thức khởi tạo được gọi đến tại thời điểm một đối tượng của lớp được tạo ra.

+ Đóng gói dữ liệu : Trong lập trình hướng đối tượng người sử dụng chỉ cần biết chức năng của phương thức mà không cần biết nội dung phương thức đó thực hiện như thế nào. Tính năng nay là tính đóng gói về chức năng. Ngoài ra các thuộc tính của lớp thường chứa dữ liệu, chỉ có các phương thức trực thuộc lớp đó hoặc các lớp kế thừa hoặc các lớp bạn mới có thể truy cập tới các thuộc tính đó. Cái này người ta gọi là tính đóng gói gắn với thuộc tính. Với ngôn ngữ C++ sử dụng các từ khóa public, private, protected, … để xử lý đặc tính này.

+ Tình thừa kế : Thừa kế cho phép định nghĩa 1 lớp dựa trên lớp cơ sở. C++ thực hiện điều này một cách dễ dàng, nó cho phép 1 lớp có thể kế thừa từ 1 lớp ( Kế thừa đơn) hoặc có thể kế thừa từ nhiều lớp (đa kế thừa).

Tính đa hình : Tính đa hình xuất hiện khi chúng ta thực hiện kế thừa. Có nghĩa là 1 phương thức khi được gọi sẽ được xác định tại thời điểm chạy chương trình (Phương thức đó có thể là phương thức tại lớp dẫn xuất hoặc phương thức tại lớp cơ sở).

3. Giới thiệu trình biên dịch GCC với C++

GCC viết tắt của “GNU Compiler Collection” nó bao gồm một tập hợp các công cụ biên dịch mã nguồn trực thuộc dự án GNU. GCC tích hợp các trình biên dịch cho 7 ngôn ngữ lập trình quan trọng. Các ngôn ngữ hiện nay bao gồm : C, C++, Objective-C, Objective-C++, Fortran, Ada, Go, and BRIG (HSAIL).

GCC hỗ trợ ngôn ngữ lập trình chuẩn ISO C++, được public vào năm 1998, 2011 và 2014. Với phiên bản mới nhất của C++ vào năm 2017 và các thông tin chuẩn hóa  ISO/IEC 14882:2017 gọi là C++ 17. GCC hỗ trợ tất cả các thay đổi theo tài liệu đặc tả của C++17.

Các bạn có thể vào trang thông tin về GCC để tìm hiểu thông tin chi tiết hơn về vấn đề này. Chú ý địa chỉ url của gcc có thông tin như sau : https://gcc.gnu.org

4. Visual Studio Code - Môi trường phát triển ứng dụng C++

Trình biên dịch trực ngôn ngữ thuộc GCC có thể được cài đặt trên nhiều hệ điều hành khác nhau, ngoài ra nó có thể tích hợp với các bộ công cụ phát triển phần mềm thông dụng và mã nguồn mở như như eclipse, visual studio code.

Đối với các lập trình viên muốn nghiên cứu và code C++ trên nền tảng của linux và unit các bạn có thể download bộ công cụ Eclise sau đó cài đặt GCC lúc đó các bạn có thể xây dựng ứng dụng dựa trên ngôn ngữ C++ trên nền tảng Eclipse ngon lành.

Ở đây tôi sử dụng bộ công cụ Visual Studio Code để làm công cụ phát triển ứng dụng C++ trên nền tảng windows 10. Và sử dụng công cụ biên dịch C/C++ của microsoft. Để thực hiên việc này chúng ta phải cài đặt thành phần mở rộng Microsoft C/C++ trên bộ Visual Studio Code.


Hình số 1 : Thành phần mở  rộng C/C++ trên Visual Studio Code

Sau khi cài đặt thành phần mở rộng C/C++ chú ý là thành phần mở rộng C/C++ không bao gồm trình biên dịch và debugs, chúng ta cần phải cài đặt MinGW cho window, Xcode cho MacOS và Gcc cho Linux và Unix.

Hoặc các bạn có thể sử dụng bộ Visual Studio 2015 hoặc 2017 để lập trình tạo ứng dụng C/C++.

5. Tạo và biên dịch và chạy chương trình C++

Tiến trình xử lý của 1 chương trình C++ được mô tả như hình sau :


Hình số 2 : Mô tả tiến trình xử lý chương trình C++

Mô tả tiến trình xử lý :

Bước 1 : Soạn thảo chương trình (Editor)

Sử dựng các trình soạn thảo văn bản để viết chương trình ví dụ trình soạn thảo vi và emacs trong hệ điều hành Linux. Hoặc sử dụng các chương trình đóng gói của các hãng phát triển để viết chương trình như Eclipse, Microsoft Visual Code hoặc Visual Studio. Sau khi soạn thảo xong ghi ra file có đuôi mở rộng là .cpp.

Bước 2 : Tiền xử lý (Preprocessor)

Trong hệ thống C++ , tiền xử lý được tiến hành một cách tự động trước khi giai đoạn dịch chương trình bắt đầu.

Bước tiền xử lý tương ứng với việc cập nhật nội dung chương trình nguồn, chủ yếu dựa trên việc diễn giải các mã lệnh rất đặc biệt gọi là các chỉ thị dẫn hướng của bộ tiền xử lý (destination directive of preprocessor); các chỉ thị này được nhận biết bởi chúng bắt đầu bằng ký hiệu (symbol) #.

Hai chỉ thị quan trọng nhất là:

+ Chỉ thị sự gộp vào của các tập tin nguồn khác: #include

+ Chỉ thị việc định nghĩa các macros hoặc ký hiệu: #define

Bước 3 : Biên dịch chương trình (Compiner)

Trình biên dịch thực hiện biên dịch chương trình C++ sang mã ngôn ngữ máy có thể hiểu được. Khi thực hiện biên dịch nếu lỗi xảy ra, lập trình viên phải quay về bước 1 để chỉnh sửa chương trình.

Bước 4 : Liên kết

Tại giai đoạn này chương trình C++ chứa các tham chiếu tới các hàm lớp thư viên được cài đặt bởi các thư viện chuẩn được cung cấp sẵn hoặc các thư viện do các nhà phát triển xây dựng nên.

Bước 5 : Nạp chương trình

Trước khi chương trình được thực thi, chương trình phải được nạp vào trong bộ nhớ. Tại giai đoạn này hệ điều hành cấp phát vùng bộ nhớ cần thiết để các đối tượng cần thiết để thực thi chương trình.

Giai đoạn 6 : Thực thi

CPU Tiến hành thực thi các nghiệp vụ của chương trình.

Ví dụ : Tạo chương trình hiển thị dòng thông tin “My first C++ program.”

Nội dung đoạn code chương trình như sau :


Hình số 3 : Ví dụ chương trình C++

Khi chạy chương trình kết quả được hiển thị dòng thông báo “My first C++ program.”

vertical_align_top
share
Chat...