Hàm tạo và hàm hủy
1>Cấu trúc đơn giản (Simple).
2>Lệnh switch và goto sử dụng trong hàm.
3>Sử dụng trong Stack.
4>Hàm dựng sao chép và toán tử gán bằng.
Tóm tắt nội dung Hàm tạo và hàm hủy, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Constructor And Destructor (Hàm tạo và hàm hủy) 1>Cấu trúc đơn giản (Simple). 2>Lệnh switch và goto sử dụng trong hàm. 3>Sử dụng trong Stack. 4>Hàm dựng sao chép và toán tử gán bằng. 1>Simple • Cấu trúc đơn giản có thể nhận biết được thế nào là 1 hàm tạo (constructor) và 1 hàm hủy (destructor).(Thường đi kèm với toán tử new và delete) – Hàm tạo (constructor): Ví dụ: class X { int i; //gt private public: X(); //Đây là 1 constructor }; +Lưu ý: Hàm khởi tạo được khai báo trong lớp và phần định nghĩa hàm có thể viết cả ở trong hàm của lớp hoặc ở ngoài lớp. Ví dụ: (Ngoài lớp) class X { // Nội dung… X(); }; void f() { X a; //… } – Hàm hủy (Destructor): Ví dụ: class Y { public: ~Y(); //Đây là 1 Destructor }; • Lưu ý : – Sau khi khai báo dữ liệu trong C++,các biến chưa đuợc khởi tạo giá trị ban đầu. – Đối với các đối tượng và lớp,trong 1 số trường hợp,nếu các biến chưa được khởi tạo giá trị ban đầu có thể sẽ gặp một số rắc rối. – Trong Lập trình hướng đối tượng (LTHDT) hàm khởi tạo được xây dựng nhằm khởi tạo các thành phần dữ liệu của đối tượng. – Hàm khởi tạo của 1 lớp đối tượng là 1 phương thức đặc biệt đuợc tự động gọi khi đối tượng thuộc lớp đó tạo lập. 2>Lệnh Switch và Goto -Ta có thể sử dụng 2 lệnh này cùng với hàm khởi tạo và hàm hủy. Ví dụ: class X { public: X(); }; void a(int i) { if(i < 10) {//! goto jump1; // Error: goto bypasses init} X x1; // Constructor called here (khởi tạo) jump1: switch(i) { case 1 : X x2; // Constructor called here break; //! case 2 : // Error: case bypasses init X x3; // Constructor called here break; } } int main() { a(9); }///:~ (hủy) class Stack { struct Link { void* data; Link* next; Link(void* dat, Link* nxt); ~Link(); }* head; public: Stack(); ~Stack(); void push(void* dat); void* peek(); void* pop(); }; Lưu ý: Stack kô thể chứa cùng lúc hàm tạo và hàm hủy nên ta phải sử dụng cấu trúc Struct (Struct Link). 4>Hàm Dựng Sao Chép -Mỗi lớp nếu kô định nghĩa một hàm khởi tạo sao chép thì trình biên dịch sẽ tự động cung cấp một hàm khởi tạo mặc định.Hàm này giúp khởi tạo một đối tượng thuộc lớp này bằng một đối tượng thuộc lớp khác. Ví dụ: class A { private: int x; public: A(); } main() { A a(); // Hàm này là mặc định nên // kô cần khai báo } -Hàm khởi tạo sao chép mặc định có nhiệm vụ sao chép từng bit của đối tượng này để chuyển đến đối tượng đích. ptr b ptr b aa Đích ptr = biến con trỏ • Lưu ý: Nếu như trong lớp (class) đã định nghĩa sẵn 1 hàm nào đó thì lớp đó sẽ kô chứa 1 hàm dựng mặc định. Ví dụ: class A { private: int x; public: A(); A(int xx); } main() { A a; // gọi hàm A(int xx) //kô có hàm mặc định. }
File đính kèm:
- Hàm tạo và hàm hủy.pdf