Constructor trong C++

Hàm xây dựng (constructor) trong C++ là gì? Nó được sử dụng như thế nào? Nó có khác gì so với các hàm bình thường trong C++. Mời bạn đọc cùng eLib.VN tham khảo bài viết dưới đây của  eLib.

Constructor trong C++

1. Constructor trong C++ 

Constructor trong C++ là một phương thức đặc biệt được gọi tự động tại thời điểm tạo đối tượng. Nó được sử dụng để khởi tạo các thành viên dữ liệu của các đối tượng mới. Constructor trong C++ có cùng tên với lớp hoặc struct.

Constructor trong C++ có thể được chia thành 2 loại:

  • Constructor mặc định.
  • Constructor có tham số.

2. Constructor mặc định trong C++

Một constructor không có đối số được gọi là constructor mặc định. Nó được gọi tại thời điểm tạo đối tượng.

Ví dụ về Constructor mặc định trong C++:

#include <iostream>

using namespace std;

class Employee {
public:
    Employee() {
        cout << "Constructor mac dinh duoc goi..." << endl;
    }
};

int main(void) {
    Employee e1; //tao doi tuong Employee
    Employee e2;
    return 0;
}

Kết quả:

Constructor mac dinh duoc goi...
Constructor mac dinh duoc goi...

3. Constructor có tham số trong C++

Một constructor có tham số được gọi là constructor tham số hóa. Nó được sử dụng để cung cấp các giá trị khác nhau cho các đối tượng riêng biệt.

Ví dụ về Constructor tham số trong C++:

#include <iostream>

using namespace std;

class Employee {
public:
    int id; // data member (bien instance)
    string name; // data member(bien instance)
    float salary;
    Employee(int i, string n, float s)
    {
        id = i;
        name = n;
        salary = s;
    }
    void display() { cout << id << "  " << name << "  " << salary << endl; }
};

int main(void) {
    Employee e1 = Employee(101, "Phan Van Vinh", 500); // tao doi tuong Employee
    Employee e2 = Employee(102, "Dao Van Hoa", 1000);
    e1.display();
    e2.display();
    return 0;
}

Kết quả:

101  Phan Van Vinh  500
102  Dao Van Hoa  1000

4. Destructor trong C++

Destructor trong C++ hoạt động ngược lại với Constructor; nó hủy các đối tượng của các lớp. Nó chỉ có thể được định nghĩa một lần trong một lớp. Nó được gọi tự động giống như các constructor.

Một Destructor được định nghĩa giống như Constructor. Nó phải có cùng tên với lớp. Nhưng nó có tiền tố là dấu ngã (~).

Destructor trong C++ không thể có tham số. Hơn thế nữa, bạn không thể sử dụng các modifier cho Destructor.

Ví dụ 

Ví dụ về Destructor trong C++ được gọi tự động:

#include <iostream>

using namespace std;

class Employee {
public:
    Employee() {
        cout << "Goi Constructor..." << endl;
    }
    ~Employee() {
        cout << "Goi Destructor..." << endl;
    }
};

int main(void) {
    Employee e1; //tao mot doi tuong Employee
    Employee e2; //tao mot doi tuong Employee
    return 0;
}

Kết quả:

Goi Constructor...
Goi Constructor...
Goi Destructor...
Goi Destructor...

Trên đây là bài viết của eLib.VN về Constructor trong C++. Hy vọng qua bài này bạn sẽ hiểu và vận dụng trong quá trình học tập và làm việc với C++. Chúc các bạn thành công!

Ngày:28/10/2020 Chia sẻ bởi:Phuong

CÓ THỂ BẠN QUAN TÂM