Giới thiệu về Constructors trong C++
Trong lập trình C++, constructors (hàm khởi tạo) là một thành phần quan trọng chịu trách nhiệm khởi tạo các đối tượng của lớp. Chúng được gọi tự động khi một đối tượng được tạo ra từ lớp, và có thể được sử dụng để gán giá trị cho các thuộc tính của đối tượng hoặc thực hiện bất kỳ công việc khởi tạo cần thiết nào khác.
Định nghĩa về Constructors
Constructor là một hàm đặc biệt có tên trùng với tên của lớp và không có giá trị trả về (không có kiểu trả về). Constructor có thể có tham số hoặc không có tham số, và có thể được nạp chồng (overloaded) để tạo ra nhiều biến thể khác nhau.
Cú pháp của Constructors
class ClassName { public: ClassName(); // Constructor không tham số ClassName(parameterType parameter); // Constructor có tham số };
Các loại Constructors
1. Constructor không tham số
class Point { public: int x, y; // Constructor không tham số Point() { x = 0; y = 0; } };
2. Constructor có tham số
class Point { public: int x, y; // Constructor có tham số Point(int xCoord, int yCoord) { x = xCoord; y = yCoord; } };
3. Constructor sao chép (Copy Constructor)
class Point { public: int x, y; // Constructor không tham số Point() : x(0), y(0) {} // Constructor có tham số Point(int xCoord, int yCoord) : x(xCoord), y(yCoord) {} // Constructor sao chép Point(const Point &p) { x = p.x; y = p.y; } };
Ví dụ về Constructors
#includeusing namespace std; class Point { public: int x, y; // Constructor không tham số Point() : x(0), y(0) {} // Constructor có tham số Point(int xCoord, int yCoord) : x(xCoord), y(yCoord) {} }; int main() { Point p1; // Gọi constructor không tham số Point p2(10, 20); // Gọi constructor có tham số cout << "Point 1: (" << p1.x << ", " << p1.y << ")" << endl; cout << "Point 2: (" << p2.x << ", " << p2.y << ")" << endl; return 0; }
Kết luận
Constructor trong C++ là một phần quan trọng để khởi tạo các đối tượng. Việc sử dụng constructors giúp chúng ta dễ dàng quản lý và đảm bảo rằng các đối tượng được thiết lập với trạng thái ban đầu hợp lệ. Hi vọng bài viết này đã giúp bạn hiểu rõ hơn về constructors trong C++!