Hàm thành viên của lớp khác hàm thông thường là:
A.
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.
B.
Hàm thành viên của lớp thì 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 thì phải khai báo bên trong lớp với từ khóa friends và xây dựng bên ngoài lớp.
D.
Hàm thành viên của lớp và hàm thông thường không có gì khác gì nhau
Trả lời:
Đáp án đúng: A
Hàm thành viên (member function) là hàm được định nghĩa bên trong một lớp (class) và nó hoạt động trên các đối tượng của lớp đó. Đ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:**
* Phải được khai báo bên trong lớp. Việc khai báo này cho trình biên dịch biết rằng hàm này thuộc về lớp đó.
* Đượ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).
* Có quyền truy cập vào các thành viên (biến và hàm) private, protected và public của lớp.
* **Hàm thông thường:**
* Không thuộc về bất kỳ lớp nào.
* Được gọi trực tiếp bằng tên của nó.
* Không có quyền truy cập trực tiếp vào các thành viên private hoặc protected của một lớp.
Do đó, đáp án A là chính xác nhất vì nó nêu bật sự khác biệt về cách khai báo và cách gọi hàm thành viên so với hàm thông thường. Các đáp án khác không hoàn toàn chính xác vì:
* Đáp án B: Việc xây dựng (định nghĩa) hàm thành viên không nhất thiết phải ở bên trong lớp. Nó có thể được định nghĩa bên ngoài lớp bằng cách sử dụng toán tử phạm vi (::).
* Đáp án C: Từ khóa `friend` được sử dụng để cho phép một hàm không phải là thành viên của lớp truy cập vào các thành viên private và protected của lớp, chứ không phải là cách khai báo hàm thành viên.
* Đáp án D: Hàm thành viên và hàm thông thường có nhiều điểm khác biệt quan trọng như đã giải thích ở trên.