Định nghĩa hàm Constructor vào C++ là gì
Hàm constructor trong C++ là 1 trong hàm đặc biệt của lớp được sử dụng để khởi tạo các đối tượng của lớp. Hàm Dựng - Constructor được gọi tự động khi một đối tượng người dùng được tạo ra và bảo đảm rằng đối tượng người tiêu dùng được khởi tạo rất đầy đủ và đúng cách dán trước lúc được sử dụng.
Bạn đang xem: Hàm Constructor - Hàm Dựng trong C++
Tính chất và điểm lưu ý của hàm constructor
- Hàm constructor có cùng thương hiệu với thương hiệu lớp và không tồn tại kiểu trả về.
- Hàm constructor được gọi tự động khi một đối tượng của lớp được tạo ra ra.
- Hàm constructor được sử dụng để có thể tạo các biến thành viên của lớp.
- Hàm constructor hoàn toàn có thể được có mang là public, protected hoặc private vào lớp.
- Lớp có thể có rất nhiều hàm constructor với các tham số khác nhau.
Tại sao cần sử dụng hàm dựng constructor vào C++
- Đảm nói rằng đối tượng được khởi tạo tương đối đầy đủ và đúng cách trước lúc được sử dụng.
- Khởi tạo thành các trở thành viên của lớp một cách tiện lợi và hiệu quả.
- Có thể khởi tạo các giá trị mang định cho trở thành viên của lớp.
- Cho phép lớp có những thuộc tính và hành vi cân xứng với yêu cầu sử dụng, với giúp kiêng lỗi khi sử dụng đối tượng người sử dụng không không thiếu thốn hoặc không đúng cách.
Các nhiều loại hàm constructor trong C++
Trong C++ lúc này có 4 loại hàm Constructor, thông tin rõ ràng về từng loại và ví dụ sẽ được cung ứng sau đây.
- xem thêm: Hàm dừng màn hình trong C++
Hàm constructor khoác định (default constructor)
Hàm constructor khoác định (default constructor): đấy là hàm constructor không tồn tại tham số hoặc có tất cả tham số mang định, được tự động tạo ra vày trình biên dịch nếu không tồn tại hàm constructor như thế nào được định nghĩa mang đến lớp. Ví dụ:
Hàm dựng constructor xào luộc (copy constructor)
Hàm constructor xào luộc (copy constructor): đó là hàm constructor sử dụng để sao chép một đối tượng từ một đối tượng người tiêu dùng khác thuộc kiểu. Nó được hotline khi một đối tượng người dùng được khởi tạo bằng phương pháp sử dụng đối tượng người sử dụng khác thuộc kiểu, hoặc lúc một đối tượng người sử dụng được truyền theo quý hiếm vào hàm. Ví dụ:
Hàm constructor tất cả tham số (parameterized constructor)
Hàm constructor gồm tham số (parameterized constructor): đấy là hàm constructor tất cả tham số, được áp dụng để khởi tạo những thuộc tính của đối tượng người tiêu dùng trong lúc khởi tạo. Ví dụ:
Hàm constructor đổi khác kiểu (conversion constructor)
Hàm dựng constructor C++ chuyển đổi kiểu (conversion constructor): đây là hàm constructor sử dụng để biến đổi từ kiểu dữ liệu này sang trọng kiểu dữ liệu khác. Nó được áp dụng khi một đối tượng cần được khởi tạo xuất phát điểm từ 1 kiểu tài liệu khác. Ví dụ:
Sử dụng hàm constructor trong C++
Hướng dẫn khởi tạo đối tượng người tiêu dùng sử dụng hàm constructor
Hàm constructor được gọi auto khi đối tượng người sử dụng được khởi tạo. Chúng ta cũng có thể sử dụng hàm constructor để khởi tạo những giá trị ban đầu cho đối tượng người dùng của lớp. Ví dụ:
class Point
public:
int x, y;
Point() // mặc định constructor
x = y = 0;
Point(int a, int b) // parameterized constructor
x = a;
y = b;
;
int main()
Point p1; // default constructor is called
Point p2(1, 2); // parameterized constructor is called
return 0;
Hướng dẫn tạo đối tượng người dùng tạm thời bằng hàm dựng constructor C++
Chúng ta hoàn toàn có thể tạo đối tượng tạm thời trong C++ bằng cách sử dụng hàm constructor của lớp. Điều này hay được thực hiện để truyền đối tượng người dùng lớp có tác dụng đối số cho hàm. Ví dụ:
class Point
public:
int x, y;
Point()
x = y = 0;
Point(int a, int b)
x = a;
y = b;
;
void printPoint(Point p)
cout << "x = " << p.x << ", y = " << p.y << endl;
int main()
printPoint(Point(3, 4)); // creating temporary object using constructor
return 0;
Hướng dẫn khai báo và sử dụng hàm constructor vào lớp kế thừa
Khi lớp con thừa kế từ lớp cha, hàm constructor của lớp thân phụ được gọi trước lúc hàm constructor của lớp nhỏ được gọi. Để gọi hàm constructor của lớp phụ thân trong hàm constructor của lớp con, chúng ta có thể sử dụng cú pháp sau:
class Shape
protected:
int width, height;
public:
Shape(int w = 0, int h = 0)
width = w;
height = h;
;
class Rectangle: public Shape
public:
Rectangle(int w = 0, int h = 0): Shape(w, h) // calling base class constructor
;
Quy tắc khai báo với viết hàm constructor trong C++
- Mỗi lớp gồm thể có khá nhiều hàm dựng constructor, bao gồm cả hàm constructor mang định.
- Tên hàm constructor yêu cầu trùng với tên lớp.
- Hàm constructor không tồn tại kiểu trả về, cũng không nên khai báo kiểu dữ liệu đối với các tham số.
- Để khai báo một hàm constructor, ta áp dụng dấu ngoặc đơn sau thương hiệu hàm cùng trước thân hàm.
Xem thêm: Deactivated Là Gì ? Nghĩa Của Từ Deactivate (Deact) Trong Tiếng Việt
Các quy tắc đặt tên và khai báo hàm dựng constructor
- Đối cùng với hàm constructor mặc định, ta không buộc phải khai báo các tham số hoặc truyền tham số nào vào hàm constructor.
- Đối cùng với hàm constructor bao gồm tham số, ta đề nghị đặt tên tham số và kiểu dữ liệu khớp ứng với trực thuộc tính của lớp.
- Đối với hàm constructor sao chép, ta thực hiện tham số là một đối tượng người sử dụng cùng thứ hạng để sao chép dữ liệu.
Thứ tự khởi sinh sản thành viên trong hàm constructor
- Thứ từ khởi tạo các thành viên của lớp vẫn theo thứ tự được khai báo trong lớp.
- Thứ trường đoản cú khởi tạo những thành viên không được đảo ngược.
- Trong ngôi trường hợp tất cả sử dụng list khởi tạo, sản phẩm tự khởi tạo ra được xác định bởi lắp thêm tự trong danh sách.
Sử dụng list khởi tạo để khởi tạo thành viên của đối tượng
- Danh sách khởi tạo được sử dụng để khởi tạo các thành viên của đối tượng khi khai báo đối tượng.
- Danh sách khởi tạo bao gồm tên thành viên và cực hiếm khởi chế tạo tương ứng.
- Sử dụng danh sách khởi tạo nên giúp tăng hiệu suất khi khởi tạo đối tượng người tiêu dùng vì tránh phải lập các thành viên các lần.
Ví dụ minh họa về hàm constructor vào C++
Ví dụ về hàm constructor khoác định (default constructor)
class Example
public:
int x;
Example()
x = 0;
;
int main()
Example e; // áp dụng hàm constructor mang định
cout << e.x; // in ra 0
return 0;
Ví dụ về hàm constructor xào nấu (copy constructor)
class Example
public:
int x;
Example(int a)
x = a;
Example(const Example &e) // hàm constructor sao chép
x = e.x;
;
int main()
Example e1(5);
Example e2 = e1; // sử dụng hàm constructor sao chép
cout << e2.x; // in ra 5
return 0;
Ví dụ về hàm constructor tất cả tham số (parameterized constructor)
class Example
public:
int x;
Example(int a) // hàm constructor gồm tham số
x = a;
;
int main()
Example e(5); // thực hiện hàm constructor có tham số
cout << e.x; // in ra 5
return 0;
Ví dụ về hàm constructor chuyển đổi kiểu (conversion constructor)
class Example
public:
int x;
Example(int a) // hàm constructor đổi khác kiểu
x = a;
;
int main()
Example e = 5; // sử dụng hàm constructor chuyển đổi kiểu
cout << e.x; // in ra 5
return 0;
Những điều cần chú ý khi áp dụng hàm constructor trong C++
- Hạn chế câu hỏi sử dụng những tham chiếu và con trỏ trong hàm constructor, tránh gây nên lỗi không hề muốn khi tạo nên đối tượng.
- Luôn sử dụng danh sách khởi sinh sản để khởi tạo các thành viên của đối tượng, tránh tạo ra hiệu suất yếu và khó khăn trong việc thống trị đối tượng.
- Tránh sử dụng những hàm tạo biến đổi kiểu ngầm định (implicit conversion constructors) để tránh nhầm lẫn vào việc sử dụng đối tượng.
- Tránh vấn đề sử dụng những hàm tạo tự động (inline constructors) với các lớp phức tạp, vì chưng nó rất có thể làm tăng kích thước của mã máy biên dịch và có tác dụng giảm công suất của chương trình.
Bên trên là toàn bộ thông tin bạn cần viết về Hàm Dựng Constructor vào C++, mong sẽ giúp ích cho mình trong tuyến đường lập trình. Nếu như cảm thấy nội dung bài viết hữu ích ước ao bạn hãy cỗ vũ DanangMoment với tác giả Anthony.