1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 9 - TS. Đặng Thái Việt

34 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 9 - Cơ sở của C++
Người hướng dẫn TS. Đặng Thái Việt
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật Lập trình Hệ Cơ Điện Tử
Thể loại Bài giảng
Năm xuất bản 2017
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 804,1 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 9 - Cơ sở của C++ được biên soạn bao gồm các nội dung chính sau: Các điểm khác về cú pháp so với C; Cấp phát động với new và delete; Truyền tham khảo; Một số vấn đề với hàm số trong C++; Quá tải. Mời các bạn cùng tham khảo bài giảng!

Trang 1

K  THU T L P TRÌNH H  C  ĐI N  Ỹ Ậ Ậ Ệ Ơ Ệ TỬ

Trang 2

1. T ng quan v  ngôn ng  l p trìnhổ ề ữ ậ

2. Gi i thi u s  b  ngôn ng  Cớ ệ ơ ộ ữ

3. Ki u, toán t  và bi u th c ể ử ể ứ

Trang 4

Các đi m khác nhau so v i C ể ớ

• C là ngôn ngữ lập trình cấu trúc, nó cho phép tạo 1 ứng dụng gồm nhiều module chức năng (file), mỗi module chứa nhiều hàm chức năng, các hàm này có thể bị bao đóng trong module chứa chúng hay có thể được truy xuất bởi bất kỳ nơi nào khác ngoài module chứa nó C là ngôn ngữ không được kiểm tra kiểu chặt, nghĩa là chương trình dịch không có khả năng và không bao giờ kiểm tra kiểu, bạn có thể gán chuỗi vào biến nguyên

Trang 5

Các đi m khác nhau so v i C ể ớ

• C++ là sự nới rộng của C, nó cung cấp thêm một số khả năng để cho phép lập trình hướng đối tượng Ứng dụng được viết theo hướng đối tượng là 1 tập các đối tượng tương tác lẫn nhau, C++ cung cấp phát biểu "class" để người lập trình đặc tả các đối tượng cấu thành ứng dụng Tuy nhiên, mức độ hỗ trợ hướng đối tượng của C++ còn yếu, không trong sáng và dễ làm người lập trình mắc lỗi trong quá trình viết code

Trang 6

Các đi m khác nhau so v i C ể ớ

• C++ cũng là ngôn ngữ lớn hơn với nhiều tính năng và phức tạp hơn so với C Giữa C và C++ có rất nhiều khác biệt Liệt kê 11 điểm khác biệt chính giữa 2 ngôn ngữ

này

1.Không phải ngôn ngữ hướng đối

tượng. Là một ngôn ngữ tượng (gồm 4 khái niệm về hướng hướng đối

đối tượng).

2.Là một ngôn ngữ lập trình thủ

tục Không phảithủ tục. là ngôn ngữ lập trình

3 Chỉ hỗ trợ các structure Hỗ trợ các lớp và đối tượng

4 Không có biến tham chiếu , chỉ

hỗ trợ con trỏ Hỗ trợ cả trỏ biến tham chiếu và con

Trang 7

Các đi m khác nhau so v i C ể ớ

5. Không thể khai báo hàm trong

các structure. Có thể khai báo hàm trong các structure.

6. Sử dụng các

hàm scanf và printf để nhập xuất. Sử dụng các hàm cin>> và cout<< để nhập xuất.

7 Không thể khai báo hàm trong

các structure. Có thể khai báo hàm trong các structure.

8 Được xem là một ngôn ngữ lập

trình cấp thấp. Được xem là sự kết hợp giữa ngôn ngữ lập trình cấp thấp và

cấp cao.

Trang 8

Các đi m khác nhau so v i C ể ớ

Trang 9

Các đi m khác nhau so v i C ể ớ

Danh sách các tính năng h  tr  trong C++ ỗ ợ

Classes Abstract classes Exception handling

Member functions Access control

(public, private, protected)

Mutable members

Constructors and

destructors Friend functions overloadingOperator

Derived classes Pointers to

members ReferencesVirtual functions Static members Templates

Trang 10

Các đi m khác nhau so v i C ể ớ

Inline functions Run-time type

identification Type safe linkage

Default arguments // comments new and delete

Trang 11

C p phát đ ng new và delete ấ ộ

• Trong các chương trình C, tất cả các cấp phát động bộ nhớ đều được xử lý thông qua các hàm thư viện như

malloc(), calloc() và free() C++ định nghĩa một phương

thức mới để thực hiện việc cấp phát động bộ nhớ bằng cách dung hai toán tử new và delete Sử dụng hai toán

tử này sẽ linh hoạt hơn rất nhiều so với các hàm thư viện của C

Trang 12

C p phát đ ng new và delete ấ ộ

C p phát đ ng trong C ấ ộ

Trang 13

C p phát đ ng new và delete ấ ộ

C p phát đ ng trong C++ ấ ộ

• Chúng ta nhận thấy rằng, cách viết của C++ sáng sủa và

dễ sử dụng Toán tử new thay thế cho hàm malloc() hay

calloc() của C có cú pháp như sau :

Trang 14

C p phát đ ng new và delete ấ ộ

Trong đó:

type_name: Mô tả kiểu dữ liệu được cấp phát Nếu kiểu dữ liệu mô tả phức tạp, nó có thể được đặt bên trong các dấu ngoặc

initializer: Giá trị khởi động của vùng nhớ được cấp phát

Nếu toán tử new cấp phát không thành công thì nó sẽ trả

Trang 17

C p phát đ ng new và delete ấ ộ

Trang 19

Truy n tham chi u ề ế

• Trong C++ cho phép sử dụng loại biến thứ ba là biến tham

chiếu So với 2 loại biến quen biết nói trên, thì biến này có những đặc điểm sau:

- Biến tham chiếu không được cấp phát bộ nhớ,

không có địa chỉ riêng

- Nó dùng làm bí danh cho một biến (kiểu giá trị) nào

đó và nó sử dụng vùng nhớ của biến này

Trang 20

Truy n tham chi u ề ế

• Tạo ra các biến thực u, v và biến tham chiếu thực r Biến r không được cấp phát bộ nhớ, nó là một tên khác (bí danh) của u và nó dùng chung vùng nhớ của biến u

Trang 21

Truy n tham chi u ề ế

Công d ng:

• Biến tham chiếu thường được sử dụng làm đối của hàm

để cho phép hàm truy nhập đến các tham số biến trong lời

Trang 22

Truy n tham chi u ề ế

a • Vì biến tham chiếu không có địa chỉ riêng, nó chỉ là bí danh

của một biến kiểu giá trị nên trong khai báo phải chỉ rõ nó tham chiếu đến biến nào Ví dụ nếu khai báo (báo lỗi)

b • Biến tham chiếu có thể tham chiếu đến một phần tử mảng,

Trang 23

Truy n tham chi u ề ế

c • Không cho phép khai báo mảng tham chiếu

d • Biến tham chiếu có thể tham chiếu đến một hằng Khi đó

nó sẽ sử dụng vùng nhớ của hằng và nó có thể làm thay đổi giá trị chứa trong vùng nhớ này

tham chiếu đến một phần tử mảng cấu trúc để nhập dữ liệu

và thực hiện các phép tính trên các trường của phần tử mảng cấu trúc

Trang 24

Truy n tham chi u ề ế

Trang 25

Truy n tham chi u ề ế

Trang 26

Truy n tham chi u ề ế

• Hằng tham chiếu được khai báo theo mẫu:

• Giống như biến tham chiếu, hằng tham chiếu có thể tham chiếu đến một biến hoặc một hằng

Trang 27

Truy n tham chi u ề ế

• Sự khác nhau giữa biến và hằng tham chiếu ở chỗ: Không cho phép dùng hằng tham chiếu để làm thay đổi giá trị của vùng nhớ mà nó tham chiếu

Trang 28

Truy n tham chi u ề ế

Cách dùng:

- Hằng tham chiếu cho phép sử dụng giá trị chứa trong một vùng nhớ, nhưng không cho phép thay đổi giá trị này

- Hằng tham chiếu thường được sử dụng làm đối của hàm

để cho phép hàm sử dụng giá trị của các tham số trong lời gọi hàm, nhưng tránh không làm thay đổi giá trị của các tham số

Trang 30

Quá t i các toán t ả ử

Trang 31

Quá t i các toán t ả ử

• Nếu quá nhiều CVector hãy để ý rằng một số trong chúng tham chiếu đến tên lớp CVector còn số còn lại là tên các hàm (constructor và destructor)

• Hàm operator+ của lớp CVector được dùng để quá tải toán

tử số học +

Trang 32

Quá t i các toán t ả ử

• Bảng tổng kết về việc các hàm operator phải được khai báo như sau:

Trang 33

Quá t i các toán t ả ử

Trang 34

Quá t i các toán t ả ử

Ngày đăng: 26/01/2023, 17:32

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm