Hàm thành viên lớp trong C++
Một hàm thành viên của một lớp là một hàm mà có định nghĩa hoặc prototype của nó bên trong định nghĩa lớp giống như bất kỳ biến nào khác. Nó hoạt động trên bất kỳ đối tượng nào của lớp mà nó là một thành viên, và có sự truy cập tới tất cả thành viên của một lớp cho đối tượng đó.
Chúng ta truy cập các thành viên của lớp bởi sử dụng một hàm thành viên thay vì trực tiếp truy cập chúng:
class Box { public: double chieudai; // chieu dai cua hop double chieurong; // chieu rong cua hop double chieucao; // chieu cao cua hop double thetich(void);// tra ve the tich cua hop };
Các hàm thành viên có thể được định nghĩa bên trong định nghĩa lớp hoặc sử dụng toán tử phân giải phạm vi ::. Định nghĩa một hàm thành viên bên trong định nghĩa lớp sẽ khai báo hàm inline, ngay cả khi bạn không sử dụng inline specifier. Vì thế, bạn có thể định nghĩa hàm Volume() như sau:
class Box { public: double chieudai; // chieu dai cua hop double chieurong; // chieu rong cua hop double chieucao; // chieu cao cua hop double thetich(void) { return chieudai * chieurong * chieucao; } };
Nếu bạn thích, bạn có thể định nghĩa giống hàm đó ở bên ngoài lớp bởi sử dụng toán tử phân giải phạm vi :: như sau:
double Box::thetich(void) { return chieudai * chieurong * chieucao; }
Tại đây, chỉ có một điểm quan trọng là bạn sẽ phải sử dụng tên lớp ngay trước toán tử ::. Một hàm thành viên sẽ được gọi bởi sử dụng một toán tử dot (.) trên một đối tượng, nơi mà nó sẽ thao tác dữ liệu chỉ liên quan tới đối tượng đó, như sau:
Box hopQua; // tao mot doi tuong hopQua.thetich(); // goi ham thanh vien cho doi tuong nay
Sau đây, chúng ta dùng khái niệm trên để thiết lập và lấy giá trị của các thành viên khác nhau trong một lớp:
#include <iostream> using namespace std; class Box { public: double chieudai; // chieu dai cua hop double chieurong; // chieu rong cua hop double chieucao; // chieu cao cua hop // Khai bao ham thanh vien double thetich(void); void layDoDai( double dai ); void layDoRong( double rong ); void layChieuCao( double cao ); }; // phan dinh nghia cac ham thanh vien double Box::thetich(void) { return chieudai * chieurong * chieucao; } void Box::layDoDai( double dai ) { chieudai = dai; } void Box::layDoRong( double rong ) { chieurong = rong; } void Box::layChieuCao( double cao ) { chieucao = cao; } // ham main cua chuong trinh int main( ) { Box Box1; // Khai bao Box1 la cua kieu Box Box Box2; // Khai bao Box2 la cua kieu Box double thetich = 0.0; // Luu giu the tich cua Box vao bien thetich // thong tin chi tiet ve box1 Box1.layDoDai(2.3); Box1.layDoRong(5.6); Box1.layChieuCao(4.5); // thong tin chi tiet ve box2 Box2.layDoDai(7.4); Box2.layDoRong(4.2); Box2.layChieuCao(3.8); // the tich cua box1 thetich = Box1.thetich(); cout << "The tich cua box1 la: " << thetich <<endl; // the tich cua box2 thetich = Box2.thetich(); cout << "The tich cua box2 la: " << thetich <<endl; return 0; }
Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack
Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Bài học C++ phổ biến khác tại vietjack.com: