Tổng hợp lý thuyết OOP | Lập trình hướng đối tượng

Trừu tượng - Cách nhìn khái quát hóa về một tập các đối tượng có chung các đặc điểm được quan tâm (và bỏ qua những chi tiết không cần thiết). Bài tập giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao

CÂU 1. KẾ THA – ƯU / NHƯỢC – VÍ DỤ VI PHẠM
// khái niệm
Tha kế - Cho phép một lớp D (dẫn xuất) thừa hưởng lại những thuộc tính, phương thức từlớp C (cơ sở), như thể các
thuộc tính và thao tác đó đã được định nghĩa tại lớp D. Cho phép cài đặt nhiều quan hệ giữa các đối tượng: Đặc biệt hóa
– Tổng quát hóa.
// ưu - nhược
Cho phép xây dựng một lớp từ lớp đã có.
Cho phép chia sẻ các thông tin chung, đồng thời nâng cấp và bảo trì một cách dễ dàng.
Định nghĩa sự tương thích giữ các lớp nhờ đó ta có thể chuyển kiểu tự động.
Các chức năng kế thừa sẽ hoạt động chậm hơn bình thường.
// trường hợp vi phạm
Lớp con định nghĩa lại (override) các phương thức của lớp cha một cách không đúng đắn.
Lớp con không sử dụng các thuộc tính và phương thức của lớp cha một cách chính xác.
Lớp con có thêm thuộc tính và phương thức không cần thiết, làm mất đi tính kế tha của lớp cha.
Lớp cha thay đổi các thuộc tính và phương thức của mình mà không thông báo -> lớp con không sử dụng các
thuộc tính và phương thức ca lớp cha một cách chính xác.
// ví d
CÂU 2. TRỪU TƯỢNG HÓA – ƯU /
NHƯỢC – VÍ D
// khái niệm
Tru tưng - Cách nhìn khái quát hóa về một tập các đối tượng có chung các đặc điểm được quan tâm (và bỏ qua
những chi tiết không cần thiết).
// ưu - nhược
Dễ quản lí mã nguồn
Dễ thay đổi cài đặt
Đơn giản hóa mã nguồn
Khó khăn trong việc hiểu mã
Đòi hỏi kỹ thuật thiết kế tốt
// ví dụ
Nguoi
Name: string
Date_Of_Birth: string
ID/CMND: string
Sleep: void
Eat: void
Drink: void
CÂU 3. ĐA HÌNH – ƯU / NHƯỢC – VÍ DỤ
// khái niệm
Đa hình - Là cơ chế cho phép một tên thao tác hoặc thuộc tính có thể được định nghĩa tại nhiều lớp và có thể có nhiều
cài đặt khác nhau tại mỗi lớp trong các lớp đó.
// ưu - nhược
Mã nguồn linh hot – Dễ mở rộng
Tăng tính tái sử dụng của
Khó khăn trong việc hiểu và bo trì mã.
Hiệu suất chậm hơn.
Khó khan trong việc thiết kế.
// ví dụ
CÂU 4. ĐÓNG GÓIƯU / NHƯỢCVÍ DỤ
// khái niệm
Đóng gói - Nhóm những gì có liên quan với nhau vào làm một, để sau này có thể dùng một cái tên để gọi đến.
// ưu - nhược
Bảo mật dữ liệu, ngăn chặn các đối tượng khác truy cập trc tiếp đến d liệu và thay đổi nó một cách không
đúng đắn.
Đảm bảo tính nhất quán, đảm bo rng dliu ca đối tượng chỉ được truy cập và thay đổi thông qua các
phương thức công khai
Dễ dàng bảo trì mã
Khó khăn trong việc mở rộng (khi một đối tượng được đóng gói quá chặt chẽ)
Hiệu suất chậm hơn
// ví dụ
CÂU 5
a. Phân biệt các phạm vi truy cập private, protected và public.
Trong class
Class con
Ngoài class
Private
Y
N
N
Protected
Y
Y
N
Public
Y
Y
Y
b. Cho biết ý nghĩa và mục đích của các hàm get/set trong mt lớp.
Hàm get: truy vn dliệu private từ các đối tượng. Đặc điểm quan trọng ca phương thức truy vấn là nó không
nên thay đổi trạng thái hiện tại của đối tượng.
Hàm set: cập nhật dữ liệu private từ các đối tượng. Phương thức cập nhật thường để thay đổi trạng thái của đi
ợng bằng cách sửa đổi một hoặc nhiều thành viên dữ liu ca đi tượng đó.
CÂU 6.
a. Phân biệt khái niệm lớp và đi tượng trong lập trình hướng đi tượng.
Lớp là một mô tả tru tượng ca nhóm các đối tượng cùng bản chất, là kết quả của việc khái quát hóa các thực
th, bao gồm thành phần dliu (thuộc tính) và thành phần xử lý dữ liệu (phương thức/hàm thành phần).
Đối tượng là thực thđược xác định trong thời gian hệ thống hướng đối tượng hot đng, gồm có dữ liu và các
hàm xử lý trên dữ liệu đó.
CÂU 7. KẾ THỪA PRIVATE, PROTECTED, PUBLIC
// viết hay không cũng được
Thành phần private ở lớp cha thì không truy xuất được ở lớp con
Kế thừa public: Lớp con kế thừa public từ lớp cha thì các thành phần protected của lớp cha trở thành protected của lớp
con, các thành phần public của lớp cha trở thành public ca lớp con.
Kế thừa private: Lớp con kế thừa private từ lớp cha thì các thành phần protected và public của lớp cha trở thành private
của lớp con.
Kế thừa protected: Lớp con kế thừa protected từ lớp cha thì các thành phần protected và public của lớp cha trở thành
protected của lớp con.
CÂU 8. Trình bày các đc điểm quan trọng của lập trình hướng đi tưng (CÓ RỒI – TỔNG HỢP THÔI)
Tru tưng - Cách nhìn khái quát hóa về một tập các đối tượng có chung các đặc điểm được quan tâm (và bỏ
qua những chi tiết không cần thiết).
Đóng gói - Nhóm những gì có liên quan với nhau vào làm một, để sau này có thể dùng một cái tên để gọi đến.
Tha kế - Cho phép một lớp D (dẫn xuất) thừa hưởng lại những thuộc tính, phương thức từlp C (cơ sở), như
thể các thuộc tính và thao tác đó đã được định nghĩa tại lớp D. Cho phép cài đặt nhiều quan hệ giữa các đối
ợng: Đặc biệt hóa – Tổng quát hóa.
Đa hình - Là cơ chế cho phép một tên thao tác hoặc thuộc tính có thể được định nghĩa tại nhiều lớp và có thể
nhiều cài đặt khác nhau tại mỗi lớp trong các lớp đó.
CÂU 9
// khái niệm
Lớp cơ sở tru tượng (abstract class) bao gồm ít nhất một hoặc nhiều phương thức thuần ảo (pure virtual
method) và/hoặc thuộc tính thuần ảo, và các lớp con kế tha tlớp này phải cài đặt lại các phương thức và
thuộc tính này. Hàm thuần ảo được xác định là một hàm virtual có kết thúc khai báo hàm là “= 0”.
Trong trường hợp lớp cơ sở tru tượng có tất c các phương thức là thuần ảo thì được gọi là interface (giao
diện).
// ví d
CÂU 10. HÀM THUN ẢO
// khái niệm
Hàm thuần o (pure virtual function) là một phương thức mà không có định nghĩa, chỉ có khai báo, có kết thúc
khai báo hàm là “= 0”.
Không cần dùng ở lớp cơ sở, dùng ở lớp dẫn xuất. Lp dẫn xuất bắt buộc phải định nghĩa lại hàm thun o.
// ví d
CÂU 11. OVERLOAD (ti chng) và OVERRIDE (ghi đ)
Overload
Override
Khái niệm
Phương thức trùng tên lớp nhưng khác
nhau về đối số
Lớp con có một hoặc nhiều phương thức giống lớp
cha của nó
Hành vi
Thêm / mở rộng cho hành vi
phương thức
Thay đổi hành vi hiện tại
của phương thức
Đa hình
Thhiện tính đa hình tại compile
Thhiện tính đa hình tại run time.
DS tham số
Danh sách tham số khác nhau (sợng,
thứ tự, kiểu d liu)
Danh sách tham sphải giống nhau.
Giá trtrả về
Kiu trả về có thể khác nhau.
Kiu trả về bắt buộc phải giống nhau
Phạm vi
Xảy ra trong phạm vi cùng 1 class.
Xảy ra giữa 2 class có quan hệ kế thừa
Quyền truy cập
Có thể có quyền truy cập khác nhau
Con phải có quyền truy cập bằng hoặc lớn hớn cha
CÂU 12. HÀM FRIEND – LỚP FRIEND – ƯU/ NHƯỢC – VÍ D
// khái niệm
Hàm bạn (friend function): là một hàm nằm ngoài lớp nhưng được khai báo là bạn của lớp đó, có quyền truy cập vào các
thành viên private hoặc protected ca lớp mà nó là bạn của .
Lớp bạn (friend class): là một lớp được khai báo là bạn ca lớp khác, có quyền truy cập vào các thành viên private hoặc
protected của lớp đó.
// ưu điểm
Cho phép các hàm và lớp bên ngoài truy cập vào các thành viên private và protected của lớp, giúp mở rộng tính
đa dạng và linh hot của mã nguồn.
Giảm độ phức tạp của mã nguồn bằng cách tránh việc phải viết nhiều phương thức getter và setter để truy cp
và thay đổi các thuộc tính private.
// nhược điểm
Làm giảm tính đóng gói của lớp
Làm giảm tính bảo mật của lớp
Làm cho mã nguồn trở nên khó hiểu và khó bảo trì hơn
// ví d
CÂU 13. CONSTRUCTOR – DESTRUCTOR
// constructor
Khái niệm
Hàm tạo - Là một phương thức của lớp dùng để tạo dựng mt đối tượng mới, dùng đkhởi gán giá trị cho các thuộc tính
của đối tượng. Hàm tạo có thể có tham số hoặc không có tham số và có thđược định nghĩa một hoặc nhiều lần để hỗ
trviệc khởi tạo đối tượng với các tham số khác nhau.
Đặc điểm
Tên phương thức trùng tên lớp.
Không giá trị trả về.
Được thực hiện sau khi vừa khai báo đối tượng.
Có nhiều phương thức trong một lớp
Hàm phương thức truy vấn ở Public
Có 3 dạng:
Phương thức thiết lập mặc đnh: thiết lập thông tin cho đối tượng bằng giá trị mặc định.
Phương thức sao chép: Xây dng đối tượng mới giống hoàn toàn đối ợng có sn.
Phương thức thiết lập nhận tham số đầu vào.
Ý nghĩa (không ghi cũng được)
Cho phép thiết lập thông tin ban đầu
Ép kiểu dliu của đối tượng này bằng kiểu dliu của đối tượng khác
// destructor
Khái niệm
Hàm hủy - Là một phương thức của lớp dùng để thực hiện mt số công việc có tính “dọn dẹp” trước khi đối tượng được
hủy bỏ. Được sử dụng để giải phóng tài nguyên đã được cấp phát cho đối tượng, như bộ nhớ động, file. Hàm hủy không
có tham số và được định nghĩa duy nhất một lần
Đặc điểm
Tên phương thức trùng tên lớp nhưng có dấu “~”
Không có giá trị trả về
Không tham số đầu vào
Được tự động hóa thự hiện khi đối tượng hết phạm vi hoạt động
Thuộc nhóm đối tượng x
Chỉ có một phương thức phá hủy trong một lớp
Chỉ có một lần phá hủy và thực hiện
// ví d
CÂU 14. PHÉP GÁN – TẠI SAO PHẢI BUILD PHÉP GÁN – VÍ D
// khái niệm
Phép gán - Là một toán tử đặc biệt được sử dụng để gán giá trị của mt đi tượng cho mt đối tượng khác của cùng một
lớp.
Phép gán được sử dụng để thc hiện sao chép giá trị ca một đối tượng sang một đối tượng khác, hoặc để gán giá tr
mặc định cho mt đối tượng khi nó được khởi tạo.
// tại sao cần thiết?
Phép gán mặc định của C++ không đủ để sao chép đối tượng của một lớp.
Phép gán được định nghĩa cho lớp giúp đảm bảo tính đóng gói và bảo mật dữ liu.
Phép gán cũng giúp tăng tính linh hoạt và tiện lợi cho việc sử dụng các đối tượng trong chương trình.
// ví d
CÂU 15
// khái niệm
1. Trong lập trình không hướng đối tượng, chúng ta có thể định nghĩa nhiều hàm có cùng tên nhưng có các tham số khác
nhau để thực hiện các tác vụ khác nhau.
2. Trong lập trình hướng đối tượng, chúng ta có thể định nghĩa nhiều phương thức có cùng tên trong một lớp nhưng có
các tham số khác nhau để thực hiện các tác vụ khác nhau.
3. Nạp chồng hàm bạn (friend function): trong lập trình hướng đối tượng, chúng ta có thể định nghĩa nhiều hàm bạn có
cùng tên nhưng có các tham số khác nhau để hỗ trợ phương thức trong một lp.
// ví d
1.
2.
3.
CÂU 16. SO SÁNH HÀM TẠO SAO CHÉP VÀ PHÉP GÁN
Hàm tạo sao chép
Phép gán
Được gọi khi một đối tượng mới được tạo bằng cách sao
chép một đối tượng đã có
Được sử dụng khi đối tượng đã được khởi tạo trước đó
Tạo mt bản sao của đối tượng đã có
Gán giá trị của một đối tượng cho một đối tượng khác
Nếu không được định nghĩa, trình biên dịch sẽ tự động
tạo một hàm tạo sao chép mặc định
Cần được định nghĩa rõ ràng.
Không trả về giá trị
Trả về một tham chiếu đến đối tượng được gán.
| 1/8

Preview text:

CÂU 1. KẾ THỪA – ƯU / NHƯỢC – VÍ DỤ VI PHẠM // khái niệm
Thừa kế - Cho phép một lớp D (dẫn xuất) có thừa hưởng lại những thuộc tính, phương thức từlớp C (cơ sở), như thể các
thuộc tính và thao tác đó đã được định nghĩa tại lớp D. Cho phép cài đặt nhiều quan hệ giữa các đối tượng: Đặc biệt hóa – Tổng quát hóa. // ưu - nhược
• Cho phép xây dựng một lớp từ lớp đã có.
• Cho phép chia sẻ các thông tin chung, đồng thời nâng cấp và bảo trì một cách dễ dàng.
• Định nghĩa sự tương thích giữ các lớp nhờ đó ta có thể chuyển kiểu tự động.
• Các chức năng kế thừa sẽ hoạt động chậm hơn bình thường. // trường hợp vi phạm
• Lớp con định nghĩa lại (override) các phương thức của lớp cha một cách không đúng đắn.
• Lớp con không sử dụng các thuộc tính và phương thức của lớp cha một cách chính xác.
• Lớp con có thêm thuộc tính và phương thức không cần thiết, làm mất đi tính kế thừa của lớp cha.
• Lớp cha thay đổi các thuộc tính và phương thức của mình mà không thông báo -> lớp con không sử dụng các
thuộc tính và phương thức của lớp cha một cách chính xác. // ví dụ
CÂU 2. TRỪU TƯỢNG HÓA – ƯU / NHƯỢC – VÍ DỤ // khái niệm
Trừu tượng - Cách nhìn khái quát hóa về một tập các đối tượng có chung các đặc điểm được quan tâm (và bỏ qua
những chi tiết không cần thiết). // ưu - nhược
• Dễ quản lí mã nguồn
• Dễ thay đổi cài đặt
• Đơn giản hóa mã nguồn
• Khó khăn trong việc hiểu mã
• Đòi hỏi kỹ thuật thiết kế tốt // ví dụ Nguoi Name: string Date_Of_Birth: string ID/CMND: string Sleep: void Eat: void Drink: void
CÂU 3. ĐA HÌNH – ƯU / NHƯỢC – VÍ DỤ // khái niệm
Đa hình - Là cơ chế cho phép một tên thao tác hoặc thuộc tính có thể được định nghĩa tại nhiều lớp và có thể có nhiều
cài đặt khác nhau tại mỗi lớp trong các lớp đó. // ưu - nhược
• Mã nguồn linh hoạt – Dễ mở rộng
• Tăng tính tái sử dụng của mã
• Khó khăn trong việc hiểu và bảo trì mã.
• Hiệu suất chậm hơn.
• Khó khan trong việc thiết kế. // ví dụ
CÂU 4. ĐÓNG GÓI – ƯU / NHƯỢC – VÍ DỤ // khái niệm
Đóng gói - Nhóm những gì có liên quan với nhau vào làm một, để sau này có thể dùng một cái tên để gọi đến. // ưu - nhược
• Bảo mật dữ liệu, ngăn chặn các đối tượng khác truy cập trực tiếp đến dữ liệu và thay đổi nó một cách không đúng đắn.
• Đảm bảo tính nhất quán, đảm bảo rằng dữ liệu của đối tượng chỉ được truy cập và thay đổi thông qua các phương thức công khai • Dễ dàng bảo trì mã
• Khó khăn trong việc mở rộng (khi một đối tượng được đóng gói quá chặt chẽ) • Hiệu suất chậm hơn // ví dụ CÂU 5
a. Phân biệt các phạm vi truy cập private, protected và public.
Trong class Class con Ngoài class Private Y N N Protected Y Y N Public Y Y Y
b. Cho biết ý nghĩa và mục đích của các hàm get/set trong một lớp.
• Hàm get: truy vấn dữ liệu private từ các đối tượng. Đặc điểm quan trọng của phương thức truy vấn là nó không
nên thay đổi trạng thái hiện tại của đối tượng.
• Hàm set: cập nhật dữ liệu private từ các đối tượng. Phương thức cập nhật thường để thay đổi trạng thái của đối
tượng bằng cách sửa đổi một hoặc nhiều thành viên dữ liệu của đối tượng đó. CÂU 6.
a. Phân biệt khái niệm lớp và đĀi tượng trong lập trình hướng đĀi tượng.

• Lớp là một mô tả trừu tượng của nhóm các đối tượng cùng bản chất, là kết quả của việc khái quát hóa các thực
thể, bao gồm thành phần dữ liệu (thuộc tính) và thành phần xử lý dữ liệu (phương thức/hàm thành phần).
• Đối tượng là thực thể được xác định trong thời gian hệ thống hướng đối tượng hoạt động, gồm có dữ liệu và các
hàm xử lý trên dữ liệu đó.
CÂU 7. KẾ THỪA PRIVATE, PROTECTED, PUBLIC
// viết hay không cũng được
Thành phần private ở lớp cha thì không truy xuất được ở lớp con
Kế thừa public: Lớp con kế thừa public từ lớp cha thì các thành phần protected của lớp cha trở thành protected của lớp
con, các thành phần public của lớp cha trở thành public của lớp con.
Kế thừa private: Lớp con kế thừa private từ lớp cha thì các thành phần protected và public của lớp cha trở thành private của lớp con.
Kế thừa protected: Lớp con kế thừa protected từ lớp cha thì các thành phần protected và public của lớp cha trở thành protected của lớp con.
CÂU 8. Trình bày các đặc điểm quan trọng của lập trình hướng đĀi tượng (CÓ RỒI – TỔNG HỢP THÔI)
• Trừu tượng - Cách nhìn khái quát hóa về một tập các đối tượng có chung các đặc điểm được quan tâm (và bỏ
qua những chi tiết không cần thiết).
• Đóng gói - Nhóm những gì có liên quan với nhau vào làm một, để sau này có thể dùng một cái tên để gọi đến.
• Thừa kế - Cho phép một lớp D (dẫn xuất) có thừa hưởng lại những thuộc tính, phương thức từlớp C (cơ sở), như
thể các thuộc tính và thao tác đó đã được định nghĩa tại lớp D. Cho phép cài đặt nhiều quan hệ giữa các đối
tượng: Đặc biệt hóa – Tổng quát hóa.
• Đa hình - Là cơ chế cho phép một tên thao tác hoặc thuộc tính có thể được định nghĩa tại nhiều lớp và có thể có
nhiều cài đặt khác nhau tại mỗi lớp trong các lớp đó. CÂU 9 // khái niệm
• Lớp cơ sở trừu tượng (abstract class) bao gồm ít nhất một hoặc nhiều phương thức thuần ảo (pure virtual
method) và/hoặc thuộc tính thuần ảo, và các lớp con kế thừa từ lớp này phải cài đặt lại các phương thức và
thuộc tính này. Hàm thuần ảo được xác định là một hàm virtual có kết thúc khai báo hàm là “= 0”.
• Trong trường hợp lớp cơ sở trừu tượng có tất cả các phương thức là thuần ảo thì được gọi là interface (giao diện). // ví dụ CÂU 10. HÀM THUẦN ẢO / khái niệm
• Hàm thuần ảo (pure virtual function) là một phương thức mà không có định nghĩa, chỉ có khai báo, có kết thúc khai báo hàm là “= 0”.
• Không cần dùng ở lớp cơ sở, dùng ở lớp dẫn xuất. Lớp dẫn xuất bắt buộc phải định nghĩa lại hàm thuần ảo. // ví dụ
CÂU 11. OVERLOAD (t愃ऀi chng) và OVERRIDE (ghi đ攃) Overload Override Khái niệm
Phương thức trùng tên lớp nhưng khác
Lớp con có một hoặc nhiều phương thức giống lớp nhau về đối số cha của nó Hành vi
Thêm / mở rộng cho hành vi
Thay đổi hành vi hiện tại phương thức của phương thức Đa hình
Thể hiện tính đa hình tại compile
Thể hiện tính đa hình tại run time. DS tham số
Danh sách tham số khác nhau (số lượng,
Danh sách tham số phải giống nhau.
thứ tự, kiểu dữ liệu) Giá trị trả về
Kiểu trả về có thể khác nhau.
Kiểu trả về bắt buộc phải giống nhau Phạm vi
Xảy ra trong phạm vi cùng 1 class.
Xảy ra giữa 2 class có quan hệ kế thừa Quyền truy cập
Có thể có quyền truy cập khác nhau
Con phải có quyền truy cập bằng hoặc lớn hớn cha
CÂU 12. HÀM FRIEND – LỚP FRIEND – ƯU/ NHƯỢC – VÍ DỤ // khái niệm
Hàm bạn (friend function): là một hàm nằm ngoài lớp nhưng được khai báo là bạn của lớp đó, có quyền truy cập vào các
thành viên private hoặc protected của lớp mà nó là bạn của nó.
Lớp bạn (friend class): là một lớp được khai báo là bạn của lớp khác, có quyền truy cập vào các thành viên private hoặc protected của lớp đó. // ưu điểm
• Cho phép các hàm và lớp bên ngoài truy cập vào các thành viên private và protected của lớp, giúp mở rộng tính
đa dạng và linh hoạt của mã nguồn.
• Giảm độ phức tạp của mã nguồn bằng cách tránh việc phải viết nhiều phương thức getter và setter để truy cập
và thay đổi các thuộc tính private. // nhược điểm
• Làm giảm tính đóng gói của lớp
• Làm giảm tính bảo mật của lớp
• Làm cho mã nguồn trở nên khó hiểu và khó bảo trì hơn // ví dụ
CÂU 13. CONSTRUCTOR – DESTRUCTOR // constructor Khái niệm
Hàm tạo - Là một phương thức của lớp dùng để tạo dựng một đối tượng mới, dùng để khởi gán giá trị cho các thuộc tính
của đối tượng. Hàm tạo có thể có tham số hoặc không có tham số và có thể được định nghĩa một hoặc nhiều lần để hỗ
trợ việc khởi tạo đối tượng với các tham số khác nhau. Đặc điểm
• Tên phương thức trùng tên lớp.
• Không giá trị trả về.
• Được thực hiện sau khi vừa khai báo đối tượng.
• Có nhiều phương thức trong một lớp
• Hàm phương thức truy vấn ở Public Có 3 dạng:
• Phương thức thiết lập mặc định: thiết lập thông tin cho đối tượng bằng giá trị mặc định.
• Phương thức sao chép: Xây dựng đối tượng mới giống hoàn toàn đối tượng có sẳn.
• Phương thức thiết lập nhận tham số đầu vào.
Ý nghĩa (không ghi cũng được)
• Cho phép thiết lập thông tin ban đầu
• Ép kiểu dữ liệu của đối tượng này bằng kiểu dữ liệu của đối tượng khác // destructor Khái niệm
Hàm hủy - Là một phương thức của lớp dùng để thực hiện một số công việc có tính “dọn dẹp” trước khi đối tượng được
hủy bỏ. Được sử dụng để giải phóng tài nguyên đã được cấp phát cho đối tượng, như bộ nhớ động, file. Hàm hủy không
có tham số và được định nghĩa duy nhất một lần Đặc điểm
• Tên phương thức trùng tên lớp nhưng có dấu “~”
• Không có giá trị trả về
• Không tham số đầu vào
• Được tự động hóa thự hiện khi đối tượng hết phạm vi hoạt động
• Thuộc nhóm đối tượng xử lý
• Chỉ có một phương thức phá hủy trong một lớp
• Chỉ có một lần phá hủy và thực hiện // ví dụ
CÂU 14. PHÉP GÁN – TẠI SAO PHẢI BUILD PHÉP GÁN – VÍ DỤ // khái niệm
Phép gán - Là một toán tử đặc biệt được sử dụng để gán giá trị của một đối tượng cho một đối tượng khác của cùng một lớp.
Phép gán được sử dụng để thực hiện sao chép giá trị của một đối tượng sang một đối tượng khác, hoặc để gán giá trị
mặc định cho một đối tượng khi nó được khởi tạo. // tại sao cần thiết?
• Phép gán mặc định của C++ không đủ để sao chép đối tượng của một lớp.
• Phép gán được định nghĩa cho lớp giúp đảm bảo tính đóng gói và bảo mật dữ liệu.
• Phép gán cũng giúp tăng tính linh hoạt và tiện lợi cho việc sử dụng các đối tượng trong chương trình. // ví dụ CÂU 15 // khái niệm
1. Trong lập trình không hướng đối tượng, chúng ta có thể định nghĩa nhiều hàm có cùng tên nhưng có các tham số khác
nhau để thực hiện các tác vụ khác nhau.
2. Trong lập trình hướng đối tượng, chúng ta có thể định nghĩa nhiều phương thức có cùng tên trong một lớp nhưng có
các tham số khác nhau để thực hiện các tác vụ khác nhau.
3. Nạp chồng hàm bạn (friend function): trong lập trình hướng đối tượng, chúng ta có thể định nghĩa nhiều hàm bạn có
cùng tên nhưng có các tham số khác nhau để hỗ trợ phương thức trong một lớp. // ví dụ 1. 2. 3.
CÂU 16. SO SÁNH HÀM TẠO SAO CHÉP VÀ PHÉP GÁN Hàm tạo sao chép Phép gán
Được gọi khi một đối tượng mới được tạo bằng cách sao Được sử dụng khi đối tượng đã được khởi tạo trước đó
chép một đối tượng đã có
Tạo một bản sao của đối tượng đã có
Gán giá trị của một đối tượng cho một đối tượng khác
Nếu không được định nghĩa, trình biên dịch sẽ tự động
Cần được định nghĩa rõ ràng.
tạo một hàm tạo sao chép mặc định Không trả về giá trị
Trả về một tham chiếu đến đối tượng được gán.