Hàm thành viên của lớp khác hàm thông thường
A.
hàm thành viên của lớp không khác với hàm thông thường.
B.
hàm thành viên của lớp phải được khai báo và xây dựng bên trong lớp còn hàm thông thường thì không.
C.
hàm thành viên của lớp phải khai báo bên trong lớp với từ khóa friend và xây dựng bên ngoài lớp.
D.
hàm thành viên của lớp phải được khai báo bên trong lớp và được gọi nhờ tên đối tượng hay tên lớp còn hàm thông thường thì không.
Trả lời:
Đáp án đúng: D
Hàm thành viên (member function) là một hàm được định nghĩa bên trong một lớp (class). Điểm khác biệt chính giữa hàm thành viên và hàm thông thường là hàm thành viên được gọi thông qua một đối tượng cụ thể của lớp hoặc thông qua tên lớp (đối với hàm static). Điều này cho phép hàm thành viên truy cập và thao tác với các thành viên dữ liệu (data members) của đối tượng đó. Trong khi đó, hàm thông thường không thuộc về bất kỳ lớp nào và được gọi trực tiếp bằng tên của nó.
* **Phương án 1:** Sai. Hàm thành viên của lớp khác với hàm thông thường ở nhiều điểm.
* **Phương án 2:** Sai. Hàm thành viên của lớp phải được khai báo bên trong lớp, nhưng có thể được xây dựng (định nghĩa) bên ngoài lớp bằng cách sử dụng toán tử phạm vi (::). Hàm thông thường thì không cần khai báo trong lớp.
* **Phương án 3:** Sai. Từ khóa `friend` được sử dụng để cấp quyền truy cập vào các thành viên private và protected của một lớp cho một hàm hoặc lớp khác. Hàm thành viên không cần `friend` để truy cập các thành viên của lớp mà nó thuộc về.
* **Phương án 4:** Đúng. Hàm thành viên phải được khai báo bên trong lớp và được gọi thông qua một đối tượng của lớp hoặc thông qua tên lớp (nếu là hàm static). Hàm thông thường thì không cần điều này.
Vì vậy, đáp án đúng là phương án 4.