Hàm xây dựng (constructor) trong c++ – Freetuts

Trong bài học kinh nghiệm ngày hôm nay tất cả chúng ta sẽ cùng tìm hiểu và khám phá về hàm thiết kế xây dựng ( constructor ) trong C + + nhé. Vậy hàm thiết kế 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 những hàm thông thường trong C + + .

test php

banquyen png

Bài viết này được đăng tại

freetuts.net

, không được copy dưới mọi hình thức.

Chúng ta sẽ cùng tìm hiểu và khám phá trong nội dung sau đây .

1. Hàm xây dựng trong C++

Trong C++, hàm xây dựng (constructor) là một phương thức đặc biệt được gọi tự động tại thời điểm đối tượng được tạo. Mục đích của hàm xây dựng là để khởi tạo các thành viên dữ liệu của đối tượng.
Hàm xây đựng phải cùng tên với tên lớp và không có bất cứ kiểu gì trả về kể cả kiểu void.

Ví dụ ta có lớp học viên có 2 thuộc tính là mã số học viên và tên, thì hàm kiến thiết xây dựng hoàn toàn có thể định nghĩa cho lớp học viên như sau :

Ví dụ

class HocSinh {
    int mshs;
    string ten;
    public:
        HocSinh();
        HocSinh(int m) {
            mshs = m;
        }
        HocSinh(string t) {
            ten = t;
        }
        HocSinh(int m, string t) {
            mshs = m;
            ten = t;
        }
};

Từ chương trình trên ta thấy, tất cả chúng ta hoàn toàn có thể tạo hàm kiến thiết xây dựng có tham số hoặc không có tham số đều được .
Trong C + + hàm thiết kế xây dựng không có tham được gọi là hàm kiến thiết xây dựng mặc nhiên ( Default constructor ), hàm thiết kế xây dựng có tham số được gọi là hàm kiến thiết xây dựng tham số ( Parameterized constructor ). Chúng ta sẽ cùng tìm hiểu và khám phá từng loại hàm kiến thiết xây dựng một nhé

2. Hàm xây dựng mặc nhiên

Như đã nói ở trên hàm thiết kế xây dựng mặc nhiên là hàm kiến thiết xây dựng không có tham số. Nó sẽ tự động hóa được gọi tại thời gian đối tượng người tiêu dùng được tạo .
Nếu lớp tất cả chúng ta không có hàm kiến thiết xây dựng nào thì mặc nhiên chương trình tất cả chúng ta sẽ tạo cho lớp đó một hàm kiến thiết xây dựng mặc nhiên .
Chúng ta cùng xem xét một ví dụ đơn thuần về hàm kiến thiết xây dựng mặc nhiên trong C + + như sau :

Ví dụ

#include   
using namespace std;  
class NhanVien {  
   public:  
        NhanVien() {    
            cout << "Ham xay dung mac nhien tu dong duoc goi." << endl;    
        }    
};  

int main() {  
    NhanVien e1; //khoi tao doi tuong nhan vien 1
    NhanVien e2;   //khoi tao doi tuong nhan vien 2
    return 0;  
}  

Và hiệu quả sau khi thực thi chương trình trên như sau :

constuctor p1 JPG

3. Hàm xây dựng tham số

Như đã đề cập ở trên thì một hàm kiến thiết xây dựng có tham số được gọi là kiến thiết xây dựng tham số. Mục đích của hàm kiến thiết xây dựng tham số là để cung ứng những giá trị khác nhau cho những đối tượng người tiêu dùng riêng không liên quan gì đến nhau .
Chúng ta cùng xem xét một ví dụ đơn thuần về hàm thiết kế xây dựng tham số trong C + + như sau :
Và tác dụng sau khi thực thi chương trình trên như sau :

Ví dụ

#include   
using namespace std;  
class NhanVien { 
    int msnv;    
    string ten;
    int tuoi;
    public:  
       NhanVien(int m) {    
            msnv = m;
       }
       NhanVien(int m, string tn) {    
            msnv = m;    
            ten = tn;
            tuoi = 20;
       }
       NhanVien(int m, string tn, int t) {    
            msnv = m;    
            ten = tn;    
            tuoi = t; 
       }    
       void HienThi() {    
            cout << ten << endl;
            cout << "   Ma so nhan vien: " << msnv << endl;
            cout << "   Tuoi: " << tuoi << endl;
       }    
};  
 
int main() {  
    NhanVien n1 =  NhanVien(111231, "Nguyen Van A", 25);    
    NhanVien n2 =  NhanVien(213214, "Nguyen Van B");
    NhanVien n3 =  NhanVien(213215, "Nguyen Van C");
    n1.HienThi();    
    n2.HienThi();
    n3.HienThi();
    return 0;  
}

Và hiệu quả sau khi thực thi chương trình trên như sau :

constuctor p2 JPG

Lưu ý :

  • Khi chúng ta không định nghĩa hàm xây dựng thì mặc nhiên chương trình sẽ tạo cho lớp đó một hàm xây dựng mặc nhiên. Chúng ta chỉ có 1 cách để khởi tạo đối tượng duy nhất đó là TenHamXayDung p1, TenHamXayDung p2, …
  • Khi chúng ta định nghĩa hàm xây dưng kể cả mặc nhiên hay tham số thì chúng ta số cách để tạo đối tương đúng bằng số hàm xây dựng mà chúng ta đã định nghĩa
  • Khi chúng ta khai báo đối tượng không khớp với bất kỳ hàm xây dựng nào mà chúng ta đã định nghĩa thì chương trình chúng ta sẽ báo lỗi.
  • Tránh khai báo nhiều hàm xây dựng vô nghĩa mà chúng ta không sử dụng để khỏi tạo đối tượng.
  • Mục đích chính của hàm xây dựng là dùng để khởi tạo giá trị cho đối tượng, tuy nhiên chúng ta có thể sử dụng hàm xây dựng theo mục đích của riêng mình.

4. Kết luận

Như vậy là tất cả chúng ta đã tìm hiểu và khám phá xong về hàm kiến thiết xây dựng trong C + + .

Ở bài học này các bạn chỉ cần nhớ trong C++ có hổ trợ cho chúng ta hai hàm xây dựng đó là hàm xây dựng mặc nhiên và hàm xây dựng tham số.

Cách định nghĩa hàm thiết kế xây dựng, khởi tạo đối tượng người dùng theo hàm thiết kế xây dựng mình đã trình diễn toàn bộ ở trên, kỳ vọng giúp ích được những bạn .
Mình sẽ kết thúc bài học kinh nghiệm này ở đây. Bài tiếp theo tất cả chúng ta sẽ cùng khám phá về hàm thiết kế xây dựng copy trong C + +. Các bạn nhớ theo dõi nhé .