Bài giảng Lập trình hướng đối tượng C++ của GV. Đặng Hoài Phương - ĐH Bách Khoa Đà Nẵng

Tài liệu môn lập trình hướng đối tượng C++ của giảng viên Đặng Hoài Phương, Khoa Công nghệ Thông tin, Trường Đại học Bách khoa Đại học Đà Nẵng.

Chuyên ngành

Công nghệ phần mềm

Tác giả

Đặng Hoài Phương

Thể loại

Bài giảng
468
0
0

Phí lưu trữ

75 Point

Tóm tắt

I. Tổng quan bài giảng Lập trình hướng đối tượng C ĐHBK Đà Nẵng

Bài giảng Lập trình hướng đối tượng C++ tại Đại học Bách Khoa Đà Nẵng là học phần cốt lõi thuộc Khoa Công nghệ Thông tin. Tài liệu do giảng viên Đặng Hoài Phương thuộc Bộ môn Công nghệ phần mềm biên soạn kỹ lưỡng. Giáo trình trang bị nền tảng tư duy phát triển phần mềm hiện đại cho sinh viên kỹ thuật. Khóa học bao gồm bảy chương học trọng tâm với lộ trình tiếp cận từ cơ bản đến nâng cao. Nội dung khởi đầu bằng việc mở rộng kiến thức C sang C++, sau đó đi sâu vào bản chất hướng đối tượng. Các chủ đề nạp chồng toán tử, kế thừa, đa hình, khuôn mẫu và xử lý ngoại lệ được trình bày mạch lạc. Tài liệu tham khảo kết hợp giữa giáo trình nội bộ và các đầu sách quốc tế danh tiếng như Thinking in C++. Sinh viên tiếp cận kiến thức lý thuyết song hành với các buổi thực hành lập trình thực chiến trên máy tính. Hệ thống bài tập giúp củng cố kỹ năng phân tích cấu trúc dữ liệu và giải thuật. Đây là hành trang bắt buộc để xây dựng các hệ thống phần mềm quy mô lớn trong tương lai.

1.1. Thông tin học phần và giảng viên phụ trách

Học phần do thầy Đặng Hoài Phương trực tiếp phụ trách giảng dạy tại Khoa Công nghệ Thông tin, Đại học Bách Khoa Đà Nẵng. Giảng viên công tác tại Bộ môn Công nghệ phần mềm với nhiều năm kinh nghiệm giảng dạy đại học. Kênh trao đổi học tập chính thức duy trì qua hòm thư điện tử danghoaiphuongdn@gmail.com và số điện thoại hỗ trợ. Đề cương môn học quy định chuẩn đầu ra khắt khe về kỹ năng tư duy logic và kỹ thuật lập trình C++. Sinh viên tiếp thu phương pháp làm việc chuẩn chỉ ngay từ những tuần học đầu tiên. Khối lượng kiến thức được phân bổ đều đặn nhằm tối ưu hóa khả năng tiếp thu của người học.

1.2. Cấu trúc chương trình học và tài liệu tham khảo

Chương trình đào tạo gồm bảy chuyên đề chuyên sâu bao quát toàn diện kỹ thuật lập trình C++. Khối kiến thức đi từ Extern C++, kỹ thuật hướng đối tượng cơ bản đến các cơ chế nâng cao. Người học tiếp cận sâu về quá tải toán tử, tính kế thừa, tính đa hình, template và biệt lệ exception. Hệ thống giáo trình tham khảo rất phong phú. Tài liệu cốt lõi là slide bài giảng năm 2018 của tác giả Đặng Hoài Phương. Ngoài ra, học phần kết hợp sách của cô Lê Thị Mỹ Hạnh, sách C++ của thầy Phạm Văn Ất và cuốn Thinking in C++. Nguồn tư liệu chuẩn mực hỗ trợ người học tự nghiên cứu hiệu quả.

II. Hạn chế code thủ tục trong Lập trình hướng đối tượng C ĐHBK

Mô hình lập trình không cấu trúc và hướng thủ tục từng giữ vai trò chủ đạo trong lịch sử phát triển phần mềm. Tuy nhiên, hai phương pháp này bộc lộ nhiều điểm yếu chí mạng khi giải quyết các hệ thống phức tạp. Lập trình không cấu trúc lạm dụng biến toàn cục và lệnh nhảy GOTO. Cấu trúc mã nguồn trở nên rối rắm, rất khó kiểm soát luồng thực thi dữ liệu. Lập trình hướng thủ tục phân tách độc lập giữa cấu trúc dữ liệu và các hàm thao tác. Dữ liệu di chuyển tự do giữa các hàm làm giảm tính bảo mật và tăng nguy cơ xung đột logic. Khi quy mô dự án mở rộng, việc bảo trì hoặc nâng cấp mã nguồn trở thành gánh nặng kỹ thuật lớn. Các lỗi phát sinh rất khó cô lập do sự phụ thuộc chéo giữa các khối lệnh. Bài giảng chỉ rõ sự cấp thiết phải chuyển đổi mô hình tư duy từ thủ tục sang hướng đối tượng. Sự chuyển dịch này giúp đóng gói dữ liệu an toàn và tái sử dụng mã nguồn hiệu quả hơn.

2.1. Nhược điểm của lập trình không cấu trúc và hướng thủ tục

Lập trình không cấu trúc xuất hiện đầu tiên nhằm giải quyết các bài toán tính toán đơn giản. Điểm đặc trưng là tính chất đơn luồng, chỉ có một khối chương trình chính. Sự lạm dụng biến toàn cục gây khó khăn lớn cho việc bảo mật dữ liệu. Tiếp theo đó, lập trình hướng thủ tục cải tiến bằng việc chia nhỏ chương trình thành các hàm. Phương pháp này áp dụng nguyên lý trừu tượng hóa chức năng. Người lập trình chỉ quan tâm kết quả hàm trả về mà bỏ qua cấu trúc bên trong. Dẫu vậy, sự liên kết lỏng lẻo giữa dữ liệu và hàm vẫn tạo ra lỗ hổng lớn khi phần mềm phình to.

2.2. Khó khăn trong quản lý bộ nhớ và con trỏ phức tạp

Ngôn ngữ C++ kế thừa hệ thống con trỏ mạnh mẽ nhưng tiềm ẩn nhiều rủi ro. Việc hiểu sai giữa con trỏ hằng và hằng con trỏ thường gây lỗi biên dịch nghiêm trọng. Con trỏ hằng ngăn chặn sửa đổi giá trị vùng nhớ thông qua con trỏ. Ngược lại, hằng con trỏ cố định địa chỉ vùng nhớ nhưng vẫn cho phép thay đổi dữ liệu trỏ tới. Thao tác gán con trỏ sai lệch kiểu dữ liệu dễ dẫn đến tình trạng rò rỉ bộ nhớ hoặc truy cập vùng cấm. Quản lý bộ nhớ thủ công đòi hỏi sự tỉ mỉ cao độ. Sinh viên thường gặp bế tắc khi xử lý các chuỗi địa chỉ phức tạp nếu thiếu nền tảng lý thuyết vững chắc.

III. Phương pháp học tốt Lập trình hướng đối tượng C ĐHBK Đà Nẵng

Để làm chủ học phần, sinh viên cần áp dụng phương pháp học tập chủ động và có kỷ luật. Trước hết, việc nắm vững các tiện ích mở rộng của C++ so với ngôn ngữ C là bước đệm then chốt. C++ bổ sung cú pháp nhập xuất dữ liệu an toàn hơn thông qua luồng cin và cout kết hợp thư viện iostream. Người học cần hiểu rõ cơ chế toán tử chèn, toán tử trích và các hàm định dạng hiển thị. Kỹ thuật hàm inline giúp tăng tốc độ thực thi chương trình đối với các đoạn mã ngắn. Chuyển sang tư duy hướng đối tượng, sinh viên tập trung vào bốn trụ cột: đóng gói, kế thừa, đa hình và trừu tượng. Việc gom dữ liệu và hàm vào các lớp class thiết lập cơ chế bảo vệ thuộc tính private nghiêm ngặt. Ngoài ra, việc luyện tập nạp chồng toán tử và sử dụng template giúp tăng khả năng trừu tượng hóa giải thuật. Sự kết hợp giữa lý thuyết giáo trình và viết mã thực tế hàng ngày mang lại hiệu quả bền vững.

3.1. Làm chủ kỹ thuật mở rộng C và luồng nhập xuất dữ liệu

Ngôn ngữ C++ giới thiệu nhiều từ khóa và cơ chế mới so với ngôn ngữ C ban đầu. Điển hình là các từ khóa new, delete, class, public, private, inline và template. Luồng xuất cout thay thế hoàn toàn printf với tính năng tự động nhận diện kiểu biến. Toán tử chèn kết hợp cùng đối tượng cout xuất dữ liệu ra màn hình chuẩn xác. Luồng nhập cin kết hợp toán tử trích nhận thông tin từ bàn phím mượt mà. Việc định dạng số thực được kiểm soát chặt chẽ qua hàm setiosflags. Hiểu sâu cơ chế này giúp người lập trình xây dựng giao diện dòng lệnh chuyên nghiệp và hạn chế tối đa các lỗi tràn bộ đệm dữ liệu.

3.2. Vận dụng bốn trụ cột OOP để thiết kế kiến trúc phần mềm

Tư duy hướng đối tượng tổ chức chương trình xoay quanh các đối tượng thực tế. Cơ chế đóng gói che giấu chi tiết cài đặt và bảo vệ trạng thái nội tại của đối tượng. Kỹ thuật kế thừa cho phép xây dựng lớp mới từ lớp cơ sở nhằm tái sử dụng mã nguồn tối đa. Tính đa hình vận hành thông qua các hàm ảo virtual và quá tải phương thức. Điều này giúp hệ thống linh hoạt phản hồi các thông điệp khác nhau trong thời gian chạy. Cuối cùng, tính trừu tượng tách biệt giao diện sử dụng khỏi cách thức triển khai cụ thể. Sự kết hợp bốn đặc trưng này tạo nên kiến trúc phần mềm bền vững, dễ bảo trì.

IV. Đánh giá và ứng dụng Lập trình hướng đối tượng C ĐHBK Đà Nẵng

Học phần Lập trình hướng đối tượng C++ tại Đại học Bách Khoa Đà Nẵng thiết lập tiêu chuẩn đánh giá rất nghiêm ngặt. Điểm số phân bổ rõ ràng thành ba phần: điểm chuyên cần bài tập chiếm 20%, thi giữa kỳ 20% và thi cuối kỳ 60%. Sinh viên phải hoàn thành đủ ba bài tập về nhà và tham gia trọn vẹn bốn bài kiểm tra định kỳ. Quy định yêu cầu sinh viên mang laptop cá nhân kèm dây cắm nối đến lớp mỗi ngày. Việc thiếu bất kỳ đầu điểm kiểm tra nào đều dẫn tới kết quả không đạt học phần. Sự khắt khe này rèn luyện tính kỷ luật và tác phong công nghiệp chuyên nghiệp cho kỹ sư tương lai. Về mặt ứng dụng, C++ hướng đối tượng là nền tảng của nhiều lĩnh vực công nghệ đỉnh cao. Kiến thức thu nhận mở ra cơ hội việc làm trong ngành phát triển game, hệ thống nhúng, tài chính định lượng và trí tuệ nhân tạo. Nắm chắc môn học là bước đệm vững vàng cho sự nghiệp công nghệ thông tin lâu dài.

4.1. Quy chế đánh giá môn học và kỷ luật phòng máy

Quy chế môn học đặt nặng tính kỷ luật và sự tham gia chủ động trên lớp. Điểm quá trình chiếm 40% tổng điểm học phần thông qua bài tập và bài thi trắc nghiệm giữa kỳ trên máy tính. Bài thi kết thúc học phần chiếm trọng số cao nhất với 60% bằng hình thức trắc nghiệm máy tính. Sinh viên bắt buộc mang laptop và dây cắm nối chuyên dụng vào mỗi buổi học thực hành. Giảng viên yêu cầu hoàn thành đủ số lượng bài tập về nhà và bài kiểm tra trên lớp. Thiếu sót chỉ một bài kiểm tra đồng nghĩa với việc phải học lại môn học vào kỳ sau.

4.2. Khả năng ứng dụng thực tế trong công nghiệp phần mềm

Kỹ năng lập trình hướng đối tượng bằng C++ mang lại lợi thế cạnh tranh lớn trên thị trường việc làm công nghệ. Ngôn ngữ này duy trì hiệu năng thực thi cực nhanh đồng thời hỗ trợ quản lý mã nguồn linh hoạt. Các công ty phát triển phần mềm nhúng, hệ điều hành và công cụ đồ họa 3D luôn ưu tiên tuyển dụng ứng viên C++ giỏi. Ngoài ra, việc hiểu sâu cơ chế cấp phát bộ nhớ và quản trị con trỏ giúp kỹ sư dễ dàng học thêm Java, C# hoặc Rust. Tư duy lập trình bài bản từ học phần tạo nền tảng vững chắc để xây dựng các giải pháp kỹ thuật phức tạp.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

22/10/2026
Lập trình hướng đối tượng c giảng viên đặng hoài phương bộ môn công nghệ phần mềm khoa công nghệ thông tin trường đại học bách khoa đại học đà nẵng

Trích đoạn nội dung tài liệu

CHƯƠNG 1 EXTERN C++ LOGO PROGRAMMING LANGUAGE • Programming Language: là ngôn ngữ dùng để diễn tả thuật toán sao cho máy tính hiểu và thực hiện được. • 2 loại: o Ngôn ngữ lập trình bậc thấp (low-level programming language):  Mã máy;  Hợp ngữ (Assembly). o Ngôn ngữ bậc cao (high-level programming language):  FORTRAN (1956);  PASCAL (1970), C (1972), C++ (1980), Java (1995), C# (2001), Python (1990), Swift (2014), Kotlin (2017), … o FRAMEWORK & SOFTWARE LIBRARIES LOGO NON-STRUCTURED PROGRAMMING • Là phương pháp xuất hiện đầu tiên. • Giải quyết các bài toán nhỏ, tương đối đơn giản (lĩnh vực tính toán).

• Đặc trưng: o Đơn giản; o Đơn luồng; o Sử dụng biến toàn cục, lạm dụng lệnh GOTO; o Chỉ gồm một chương trình chính. PROCEDURE-ORIENTED LOGO PROGRAMMING (POP) • Tổ chức chương trình thành các chương trình con o PASCAL: thủ tục & hàm, C: hàm. • Chương trình hướng cấu trúc = cấu trúc dữ liệu + tập hợp hàm. • Trừu tượng hóa chức năng (Functional Astraction): o Không quan tâm đến cấu trúc hàm; o Chỉ cần biết kết quả thực hiện của hàm.

→ Nền tảng của lập trình hướng cấu trúc. PROCEDURE-ORIENTED LOGO PROGRAMMING (POP) • Ví dụ: LOGO NGÔN NGỮ C VÀ C++ • Ngôn ngữ C ra đời năm 1972. • Phát triển thành C++ vào năm 1983. LOGO KEYWORDS • Một số từ khóa (keyword) mới đã được đưa vào C++ ngoài các từ khóa có trong C.

• Các chương trình sử dụng các tên trùng với các từ khóa cần phải thay đổi trước khi chương trình được dịch lại bằng C++. asm catch class delete friend inline new operator private protected public template this throw try virtual LOGO COMMENT • C: o Chú thích bằng /*. */ → dùng cho khối chú thích lớn gồm nhiều dòng. • C++: giống như C o Đưa thêm chú thích bắt đầu bằng // → dùng cho các chú thích trên một dòng.

• Ví dụ: /* Đây là chú thích trong C */ // Đây là chú thích trong C++ LOGO QUY TẮC ĐẶT TÊN • Quy tắc Pascal: viết hoa chữ cái đầu tiên của mỗi từ o Method, Interface, Enum, Events, Exception, Namespace, Property • Quy tắc Camel: viết thường từ đầu tiên & chữ cái đầu tiên của từ kế tiếp o Bổ sung truy cập, Parameter LOGO DATA TYPE • 2 loại: o Kiểu dữ liệu gốc (Primitive Type); o Kiểu dữ liệu gốc modifier: sử dụng 1 trong các modifier sau:  signed Kiểu dữ liệu Keyword Byte  unsigned Boolean bool 1  short Ký tự float 1  long Số nguyên int 4 Số thực float 4 Số thực dạng double double 8 Kiểu không có giá trị void LOGO IDENTIFIER • Biến: vị trí bộ nhớ được dành riêng để lưu giá trị. • 3 loại: o Biến giá trị; o Biến tham chiếu; o Biến con trỏ. • Khai báo & Khởi tạo: o int x; o x = 5; → int x = 5; LOGO IDENTIFIER • Phân loại theo phạm vi: o Biến cục bộ; o Biến toàn cục Toán tử định phạm vi :: LOGO TYPEDEF • typedef: tạo một tên mới cho một kiểu dữ liệu đang tồn tại: typedef type name; o Ví dụ: LOGO CASTING • C: (new_type) expression; • C++: vẫn sử dụng như trên. o Phép chuyển kiểu mới: new_type (expression); → Phép chuyển kiểu này có dạng như một hàm số chuyển kiểu đang được gọi.

 type_cast <new_type> (expression);  type_cast: const_cast, static_cast, dynamic_cast, reinterpret_cast. LOGO CONSTANT/LITERAL • Có 2 cách định nghĩa: o Sử dụng bộ tiền xử lý #define; #define identifier value o Sử dụng từ khóa const; const type identifier = value; type const identifier = value; LOGO ENUM • Kiểu liệt kê: Là kiểu dữ liệu mà tất cả các phần tử của nó (có ý nghĩa tương đương nhau) có giá trị là hằng số: o Được định nghĩa thông qua từ khóa enum; o Khai báo enum không yêu cầu cấp phát bộ nhớ, chỉ cấp phát bộ nhớ lúc tạo biến kiểu enum; o Mặc định các phần tử của enum có kiểu dữ liệu int; o Enum sẽ được ép kiểu ngầm định sang kiểu int, nhưng kiểu int phải ép kiểu tường mình sang enum; o Biến kiểu enum chỉ có thể được gán giá trị là một trong số các hằng đã khai báo bên trong kiểu enum đó, không thể sử dụng hằng của kiểu enum khác; o Phạm vi sử dụng của một khai báo enum cũng tương tự như phạm vi sử dụng khi khai báo biến. LOGO OPERATOR • Toán tử số học: +, -, *, /, %, ++, -- • Toán tử quan hệ: ==, !=, >, <, >=, <= • Toán tử logic: &&, ||, ! • Toán tử so sánh bit: &, |, ^, ~, <<, >> • Toán tử gán: =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= • Toán tử hỗn hợp: sizeof, ?x:y, ,, &, * Toán tử có thứ tự ưu tiên.H • Thư viện: o Khai báo tệp tiêu đề:  include <iostream.h> o Sử dụng câu lệnh nhập, xuất dữ liệu trong C++ cần sử dụng thêm using namespace std: LOGO OUTPUT • Toán tử xuất: o C: ??? o C++:  Cú pháp: cout << biểu_thức_1 << … << biểu_thức_n;  Trong đó cout được định nghĩa trước như một đối tượng biểu diễn cho thiết bị xuất chuẩn của C++ là màn hình;  cout được sử dụng kết hợp với toán tử chèn << để hiển thị giá trị các biểu thức 1, 2, …, n ra màn hình;  Sử dụng “\n” hoặc endl để xuống dòng mới. LOGO OUTPUT • Toán tử xuất: o Ví dụ: LOGO INPUT • Toán tử nhập: oC: ??? oC++:  Cú pháp: cin >> biến_1 >> … >> biến_n;  Toán tử cin được định nghĩa trước như một đối tượng biểu diễn cho thiết bị vào chuẩn của C++ là bàn phím;  cin được sử dụng kết hợp với toán tử trích >> để nhập dữ liệu từ bàn phím cho các biến 1, 2, …, n.

LOGO INPUT • Xuất dữ liệu: o Ví dụ: LOGO ĐỊNH DẠNG IN • Quy định số thực được hiển thị ra màn hình với p chữ số sau dấu chấm thập phân, sử dụng đồng thời các hàm sau: o setiosflags(ios::showpoint): bật cờ hiệu showpoint(p). o Định dạng trên sẽ có hiệu lực đối với tất cả các toán tử xuất tiếp theo cho đến khi gặp một câu lệnh định dạng mới. LOGO ĐỊNH DẠNG IN • Ví dụ: LOGO ĐỊNH DẠNG IN • Để quy định độ rộng tối thiểu để hiển thị là k vị trí cho giá trị (nguyên, thực, chuỗi) ta dùng hàm: setw(k); (#include <iomanip>). • Hàm này cần đặt trong toán tử xuất và nó chỉ có hiệu lực cho một giá trị được in gần nhất.

Các giá trị in ra tiếp theo sẽ có độ rộng tối thiểu mặc định là 0. LOGO BIẾN THAM CHIẾU • Biến tham chiếu là một tên khác (bí danh) cho biến đã định nghĩa: Kiểu_dữ_liệu &Biến_tham_chiếu = biến_hằng; o Biến tham chiếu có đặc điểm là nó được sử dụng làm bí danh cho một biến (kiểu giá trị) nào đó và sử dụng vùng nhớ của biến này; o Biến tham chiếu không được cung cấp vùng nhớ (dùng chung địa chỉ vùng nhớ với biến mà nó tham chiếu đến); o Trong khai báo biến tham chiếu phải chỉ rõ tham chiếu đến biến nào; o Biến tham chiếu có thể tham chiếu đến một phần tử mảng, nhưng không cho phép khai báo mảng tham chiếu. LOGO HẰNG THAM CHIẾU • Cú pháp: const Kiểu_dữ_liệu &Hằng = Biến/Hằng; • Ví dụ: LOGO HÀM • Khai báo nguyên mẫu hàm & Định nghĩa hàm; • Ví dụ: LOGO HÀM • Truyền tham trị & tham chiếu (biến tham chiếu hoặc biến con trỏ): LOGO HÀM VỚI ĐỐI SỐ HẰNG • Đối số bình thường: LOGO HÀM VỚI ĐỐI SỐ HẰNG • Đối số hằng: sử dụng khi không muốn thay đổi giá trị đối số truyền vào: LOGO HÀM VỚI ĐỐI SỐ HẰNG • Đối số hằng tham chiếu: LOGO HÀM VỚI ĐỐI SỐ MẶC ĐỊNH • Đối số mặc định: o Định nghĩa các giá trị tham số mặc định cho các hàm; o Các đối số mặc định cần là các đối số cuối cùng tính từ trái qua phải; o Nếu chương trình sử dụng khai báo nguyên mẫu hàm thì các đối số mặc định càn được khởi gán trong nguyên mẫu hàm, không được khởi gán lại cho các đối số mặc định trong dòng đầu của định nghĩa hàm; o Khi xây dựng hàm, nếu không khai báo nguyên mẫu hàm thì các đối số mặc định được khởi gán trong dòng đầu của định nghĩa hàm; o Đối với các hàm có đối số mặc định thì lời gọi hàm cần viết theo quy định: các tham số vắng mặt trong lời gọi hàm tương ứng với các đối số mặc định cuối cùng (tính từ trái sang phải). LOGO HÀM VỚI ĐỐI SỐ MẶC ĐỊNH • Đối số mặc định: LOGO HÀM TRẢ VỀ THAM CHIẾU • Hàm trả về là một tham chiếu: Kiểu &Tên_hàm(…) { //thân hàm return <biến phạm vi toàn cục>; } o Biểu thức được trả lại trong câu lệnh return phải là biến toàn cục, khi đó mới có thể sử dụng được giá trị của hàm; o Nếu trả về tham chiếu đến một biến cục bộ thì biến cục bộ này sẽ bị mất đi khi kết thúc thực hiện hàm.

Do vậy tham chiếu của hàm sẽ không còn ý nghĩa nữa. Vì vậy, nếu hàm trả về là tham chiếu đến biến cục bộ thì biến cục bộ này NÊN khai báo static; o Khi giá trị trả về của hàm là tham chiếu, ta có thể gặp các câu lệnh gán hơi khác thường, trong đó vế trái là một lời gọi hàm chứ không phải là tên của một biến. LOGO HÀM TRẢ VỀ THAM CHIẾU • Ví dụ: LOGO HÀM TRẢ VỀ THAM CHIẾU • Hàm trả về hằng tham chiếu: LOGO HÀM HẰNG • Hàm hằng: o const int func(int value); o int func(int value) const; LOGO HÀM INLINE • Hàm nội tuyến (inline): o Hàm: làm chậm tốc độ thực hiện chương trình vì phải thực hiện một số thao tác có tính thủ tục khi gọi hàm:  Cấp phát vùng nhớ cho đối số và biến cục bộ;  Truyền dữ liệu của các tham số cho các đối;  Giải phóng vùng nhớ trước khi thoát khỏi hàm. o C++ cho khả năng khắc phục được nhược điểm trên bằng cách dùng hàm nội tuyến → dùng từ khóa inline trước khai báo nguyên mẫu hàm.

Chú ý:  Hàm nội tuyến cần có từ khóa inline phải xuất hiện trước các lời gọi hàm;  Chỉ nên khai báo là hàm inline khi hàm có nội dung đơn giản;  Hàm đệ quy không thể là hàm inline. LOGO HÀM INLINE • Ví dụ: LOGO CON TRỎ • Khái niệm: o Con trỏ là biến dùng để chứa địa chỉ của biến khác; o Cùng kiểu dữ liệu với kiểu dữ liệu của biến mà nó trỏ tới. • Cú pháp: <kiểu dữ liệu> *<tên con trỏ>; Lưu ý: o Có thể viết dấu * ngay sau kiểu dữ liệu; o Ví dụ: int *a; và int* a; là tương đương.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ