Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Hãy sử dụng FireFox để web hiển thị tốt hơn!


Share | 
 

 Phương thức tự động

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Phương thức tự động   Sat Jul 02, 2011 6:34 pm

Sat Jul 02, 2011 6:34 pm » Phương thức tự động
Nhằm mục đích xây dựng đối tượng không chỉ gồm các dự liệu mà còn có các hành vi được thực thi ngay khi khởi tạo hoặc khi đối tượng mất đi, C++ đã xây dựng các phương thức tự động thực hiện:

.Constructor: (thực hiện ngay khi khởi tạo đối tượng) cùng tên với tên class
.Destructor: (thực hiện khi hủy bỏ đối tượng) thường cùng tên với class nhưng có thêm dấu ~
_Cả constructor và destructor đều không có kiểu trả về viết hoặc khai báo prototype ở public nhá!!!!
Ví dụ: Class CNguoi{... } thì constuctor là CNguoi{...} , destructor là ~CNguoi{...}
Một lớp có thể có nhiều constructor nhưng lại có 1 destructor thôi!!!! O.O~~
_Ah`, nếu không viết constructor, destructor thì chương trình sẽ tự động gọi các phương thức tự động chuẩn nguy hỉm ở chỗ là người lập trình hẻm bik nó chạy có ảnh hưởng gì tới chương trình hem !!!
Một số constructor, destructor hay dùng
_Ví dụ có class CNguoi sau:
Code:
class CNguoi
{
    private:
    int Cao,Nang;
    public:
    .....
};

Ta sẽ có 2 constructor thiết lập giá trị ban đầu cho biến
1) Không có đối số:
Code:
CNguoi::CNguoi()
{
    Cao=0;
    Nang=0;
}
2) Có đối số:
Code:
CNguoi::CNguoi(int x,int y)
{
    Cao=x;
    Nang=y;
}

Constructor không thể thiếu là constructor copy: việc này cần thiết khi ta đã có đối tượng a và muốn khai báo đối tượng b cùng lớp có giá trị giống a.
Code:
CNguoi::CNguoi( const CNguoi &c)
{
    Cao=c.Cao;
    Nang=c.Nang;
}
Copy constructor trong C++ bắt buộc phải truyền tham chiếu &. Nếu không có
thể sẽ dẫn đến lặp vô hạn khi copy constructor được gọi.

" Khi bạn truyền biến mà không truyền bằng tham chiếu, thì hàm sẽ phải
tạo một bản copy cho biến đấy và thao tác trên nó. Đối với copy
constructor thì biến truyền vào sẽ là một đối tượng của lớp, để copy một
đối tượng của lớp thì nó sẽ gọi copy constructor -> Lặp vô hạn " .



nếu trong class có tạo mảng thì destructor sẽ viết lệnh xóa!!!


Tboy



Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
 

Phương thức tự động

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: Lập trình hướng đối tượng :: Lý thuyết-