
Constructor thường được gọi là hàm thành viên cần thiết dùng để khởi tạo đối tượng kiểu class và cấu trúc (struct). Giống như các ngôn ngữ lập trình khác, constructor cũng được dùng trong C++. Nó được sử dụng để tạo đối tượng với phương pháp cụ thể nhằm tránh hành vi chưa khởi tạo hoặc không xác định cho cấu trúc.
Hướng dẫn này sẽ mô tả về:
- Constructor "struct" trong C++ là gì?
- Các điểm chính khi định nghĩa Constructor trong C++
- Cú pháp Constructor "struct" trong C++
- Cách hoạt động của Constructor "struct" trong C++
- Constructor "struct" mặc định (Default) trong C++
- Constructor "struct" có tham số (Parameterized) trong C++
- Cách tạo con trỏ cho Constructor Cấu trúc trong C++?
- Kết luận
Trong C++, "struct" được biết như một cấu trúc (structure) là một hàm thành viên đặc biệt bên trong một struct. Constructor "struct" được dùng để khởi tạo các biến thành viên của nó và cho phép người dùng tạo một nhóm biến mới gồm các kiểu dữ liệu hỗn hợp ở một nơi. Nói đơn giản, constructor "struct" là một phương pháp đặc biệt được gọi tự động bất cứ khi nào người dùng khai báo một đối tượng cho class.
Các Điểm Chính Khi Định Nghĩa Constructor Trong C++
Dưới đây là một số điểm chính khi định nghĩa constructor trong C++:
- Constructor luôn có cùng tên với class mà nó là một phần.
- Nếu constructor không được cung cấp bởi người dùng, nó sẽ tạo ra constructor mặc định (default constructor).
- Constructor được dùng cho khởi tạo chứ không phải cho hoạt động nhập/xuất (input/output).
- Được sử dụng để cấp phát bộ nhớ lúc chạy (runtime) với sự giúp đỡ của toán tử new.
- Nó không thể được khai báo virtual (ảo) và static (tĩnh).
- Người dùng có thể khai báo nhiều hơn một constructor (có thể nạp chồng - overloaded).
Cú Pháp Constructor "struct" Trong C++
Hãy xem cú pháp chung của constructor struct:
struct Structure-Name{
d_type variable1;
d_type variable2;
........
........
// constructor không tham số
Structure-Name()
{
// code
}
// constructor có tham số
Structure-Name (d_type variable1, d_type variable2,..)
{
// code
}
};
Theo cú pháp trên:
- "Structure-Name" sẽ được thay bằng tên cấu trúc ưa thích của người dùng và định nghĩa với từ khóa "struct".
- "d_type variable1" đại diện cho tên biến với các kiểu dữ liệu khác nhau.
- Sau đó, constructor "Structure-Name()" được định nghĩa không có tham số.
- Tiếp theo, cú pháp constructor có tham số cũng được định nghĩa, ví dụ "Structure-Name(d_type variable1,…)" đại diện cho constructor có tham số.
Lưu ý: Khai báo "struct" giống hệt khai báo class trong C++.
Cách Hoạt Động Của Constructor "struct" Trong C++
Trong C++, người dùng có thể dùng constructor struct không có hoặc có tham số tùy theo yêu cầu. Hãy xem ví dụ mã dưới đây để hiểu rõ hơn.
Tạo Constructor "struct" Mặc Định (Default) Trong C++
Để tạo constructor struct mặc định trong C++, xem khối mã sau:
#include <iostream>
using namespace std;
struct folk{
string name;
float height;
int age;
folk(){
name= "David";
height = 6.7;
age = 26;
cout<<"Name: "<<name<<endl<<"Height: "<<height<<endl<<"Age: "<<age<<endl;
}
};
int main()
{
folk();
}
Trong khối mã trên:
- Đầu tiên, thêm thư viện luồng nhập/xuất “# include <iostream>” làm file header.
- Tiếp theo, dùng “using namespace std” để cho phép sử dụng định danh thư viện chuẩn.
- Sau đó, tạo cấu trúc “folk()” có ba thành viên với kiểu dữ liệu khác nhau: "name" kiểu string, "height" kiểu float, và "age" kiểu integer.
- Thêm constructor cho struct và khởi tạo các thành viên với giá trị tương ứng. Bên trong thân constructor, định nghĩa dữ liệu của cấu trúc folk và dùng câu lệnh “cout” để hiển thị kết quả trên console.
Đầu ra (Output)
Tạo Constructor "struct" Có Tham Số (Parameterized) Trong C++
Để tạo constructor có tham số trong C++, hãy thử mã dưới đây:
#include <iostream>
using namespace std;
struct folk{
string name;
float height;
int age;
folk(string x, float y, int z){
name = x;
height = y;
age = z;
}
};
int main()
{
folk f1("Ayzel", 5.1, 23);
cout<<"Name: " <<f1.name<<endl<<"Height: "<<f1.height<<endl<<"Age: "<<f1.age<<endl;
}
Ở đây:
- Chúng ta mở rộng ví dụ trước và truyền biến cùng kiểu dữ liệu tương ứng làm tham số cho constructor, như "x" kiểu string, "y" kiểu float, và "z" kiểu integer.
- Cuối cùng, bên trong hàm "main()", tạo đối tượng tên "f1" và gọi constructor với giá trị. Sau đó, dùng câu lệnh “cout” in giá trị kết quả của biến ra console.
Đầu ra (Output)

Cách Tạo Con Trỏ Cho Constructor Cấu Trúc Trong C++?
Con trỏ (pointer) là biến dùng để lưu địa chỉ bộ nhớ của một đối tượng. Trong C++, con trỏ cũng dùng để lặp qua các phần tử mảng hoặc cấu trúc dữ liệu khác và nhiều mục đích hơn. Biến con trỏ cũng được tạo cho kiểu do người dùng định nghĩa như cấu trúc (struct). Hãy xem ví dụ tạo con trỏ cho cấu trúc:
#include <iostream>
#include <cstring>
using namespace std;
struct folk
{
string name;
int age;
};
int main(){
struct folk f = {"Elice ", 28};
struct folk *ptr;
ptr = &f;
cout << f.name << f.age << endl;
cout <name <age << endl;
return 0;
}
Trong mã cung cấp trên:
- Đã thêm file header “<iostream>” và “<cstring>”.
- Sau đó, chỉ định “using namespace std” để cho phép dùng định danh thư viện chuẩn.
- Tiếp theo, tạo cấu trúc “folk()” có hai thành viên kiểu dữ liệu khác nhau: "name" kiểu string, và "age" kiểu integer.
- Sau đó, định nghĩa con trỏ “ptr” trỏ đến cấu trúc “folk”.
- Bây giờ, tạo con trỏ “ptr” trỏ đến biến cấu trúc “f”. Do đó, “ptr” lưu địa chỉ của biến cấu trúc “f”.
- Cuối cùng, dùng toán tử “->” để truy cập thành viên dữ liệu của cấu trúc thông qua con trỏ trỏ đến cấu trúc đó.
Đây là đầu ra của mã trên:

Kết Luận
Trong C++, "struct" được biết như một cấu trúc là hàm thành viên đặc biệt bên trong struct, dùng để khởi tạo biến thành viên và cho phép người dùng tạo nhóm biến mới gồm các kiểu dữ liệu hỗn hợp tại một nơi. Người dùng có thể định nghĩa constructor có hoặc không có tham số. Trong C++, biến con trỏ cũng được tạo cho kiểu do người dùng định nghĩa như cấu trúc. Chúng tôi đã trình bày chi tiết thông tin về constructor struct trong C++.
Về tác giả

Maria Naz
Tôi có thạc sĩ khoa học máy tính. Tôi đam mê công việc, khám phá công nghệ mới, học ngôn ngữ lập trình, và thích chia sẻ kiến thức với thế giới.