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 và hàm thông thường không có gì khác nhau.
B.
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.
C.
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.
D.
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 friend và xây dựng bên ngoài lớp.
Trả lời:
Đáp án đúng: B
Hàm thành viên (member function) là hàm được khai báo 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à:
* **Khai báo và gọi:** Hàm thành viên phải được khai báo bên trong lớp. Chúng được gọi thông qua một đối tượng (instance) 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 khai báo trong lớp và được gọi trực tiếp bằng tên hàm.
* **Truy cập:** Hàm thành viên có thể truy cập trực tiếp vào các thành viên dữ liệu (data members) của lớp mà nó thuộc về (kể cả các thành viên private, protected). Hàm thông thường không có khả năng này.
* **'this' pointer:** Bên trong hàm thành viên, có một con trỏ ngầm định tên là `this`, trỏ đến đối tượng mà hàm đang được gọi trên đó. Hàm thông thường không có con trỏ `this`.
Vì vậy, đáp án chính xác nhất là phương án 2.





