Các hàm tạo là các hàm của một lớp được thực thi khi các đối tượng mới của lớp được tạo. Các hàm tạo có cùng tên với lớp và không có kiểu trả về, thậm chí không có giá trị. Chúng chủ yếu hữu ích để cung cấp các giá trị ban đầu cho các biến của lớp.
Hai loại hàm tạo chính là hàm tạo mặc định và hàm tạo tham số hóa. Thông tin chi tiết về những điều này được đưa ra như sau.
Trình tạo mặc định
Các hàm tạo mặc định không nhận bất kỳ tham số nào. Nếu một hàm tạo mặc định không được lập trình viên cung cấp một cách rõ ràng, thì trình biên dịch sẽ cung cấp một hàm tạo mặc định ngầm định. Trong trường hợp đó, giá trị mặc định của các biến là 0.
Một chương trình thể hiện các hàm tạo mặc định được đưa ra như sau.
Ví dụ
#include <iostream> using namespace std; class A { private: int num1, num2 ; public: A() { num1 = 5; num2 = 7; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } }; int main() { A obj; obj.display(); return 0; }
Đầu ra
num1 = 5 num2 = 7
Trong chương trình trên, lớp A chứa một hàm tạo mặc định khởi tạo num1 và num2 là 5 và 7. Nó cũng chứa một hàm display () in ra giá trị của num1 và num2. Đoạn mã cho điều này được đưa ra như sau.
class A { private: int num1, num2 ; public: A() { num1 = 5; num2 = 7; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } };
Hàm main () chứa định nghĩa đối tượng cho một đối tượng thuộc loại lớp A. Sau đó, hàm display () được gọi. Điều này được hiển thị bên dưới.
A obj; obj.display();
Các trình xây dựng được tham số hóa
Các hàm tạo được tham số hóa có thể nhận các đối số để khởi tạo một đối tượng khi nó được tạo. Các tham số được thêm vào một phương thức khởi tạo tham số giống như chúng được thêm vào một hàm bình thường. Các hàm tạo được tham số hóa có thể được gọi ngầm hoặc rõ ràng.
Một chương trình chứng minh các hàm tạo được tham số hóa được đưa ra như sau.
Ví dụ
#include <iostream> using namespace std; class A { private: int num1, num2 ; public: A(int n1, int n2) { num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } }; int main() { A obj(3,8); obj.display(); return 0; }
Đầu ra
num1 = 3 num2 = 8
Trong chương trình trên, lớp A chứa một phương thức khởi tạo được tham số hóa khởi tạo num1 và num2 với các giá trị được cung cấp bởi n1 và n2. Nó cũng chứa một hàm display () in ra giá trị của num1 và num2. Đoạn mã cho điều này được đưa ra như sau.
class A { private: int num1, num2 ; public: A(int n1, int n2) { num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } };
Hàm main () chứa định nghĩa đối tượng cho một đối tượng thuộc loại lớp A. Sau đó, hàm display () được gọi. Điều này được hiển thị bên dưới.
A obj(3,8); obj.display();