LẬP TRÌNH C nâng cao - bài 3 - nhắc lại về lớp

BÀI 3: NHẮC LẠI VỀ LỚP ( tiếp theo) Chú ý về cấp phát bộ nhớ Ðiều gì sẽ xảy ra khi chúng ta không thể cấp phát bộ nhớ ? Ví dụ chúng ta viết 1 game RTS mà mỗi phe tham chiến có 10 tỉ quân ? Giải quyết khi không thể cấp phát bộ nhớ thành công Chúng ta vẫn thường cấp phát bộ nhớ như sau. | LẬP TRÌNH C C NÂNG CAO Yêu cầu trước khi đọc học xong Lập trình C C căn bản BÀI 3 NHẮC LẠI VỀ LỚP tiếp theo Chú ý về cấp phát bộ nhớ Điều gì sẽ xảy ra khi chúng ta không thể cấp phát bộ nhớ Ví dụ chúng ta viết 1 game RTS mà mỗi phe tham chiến có 10 tỉ quân Giải quyết khi không thể cấp phát bộ nhớ thành công Chúng ta vẫn thường cấp phát bộ nhớ như sau CODE char p int i cout number of element u want cin i p new char i 1 delete p Nếu chúng ta không thể cấp phát bộ nhớ CPP sẽ ném throw ra một ngoại lệ. Có 2 cách để xử lí chuyện này Cách một là dùng từ khóa nothrow. Vì thế CPP vẫn tạo ra một pointer nhưng là 0 CODE p new nothrow char i 1 if p 0 cout Can t allocate memory Cách hai là bắt cái ngoại lệ ấy Đó là ngoại lệ std bad_alloc CODE try p new char i 1 catch std bad_alloc mae cerr failed to allocate memory exit 1 Cấp phát bộ nhớ trong C Đừng có chỉ mê new và delete không thôi cấp phát với cách của C vẫn phải dùng về sau đấy CODE char p int i printf number of element u want scanf d i p char malloc i 1 if p NULL exit 1 free p hoặc chúng ta có thể dùng calloc p char calloc i sizeof char Toán tử gán assignment operator CODE class Base public Base operator const Base friend bool operator const Base const Base private char c Base Base operator const Base src if this src to avoid self-assignment delete c c new char strlen 1 strcpy this- c return this bool operator const Base b1 const Base b2 return strcmp b1 .c Và chúng ta có thể gọi toán tử này Base s2 s1 Thừa kế inheritance Trong C có thể sinh ra bug trong C chúng sẽ được thừa kế. CODE class Base protected int id Base int id this- id id class Sub public Base public int code Sub int code int id Base id this- code code Hàm ảo virtual function Hàm Play trong lớp MusicPlayer là một hàm ảo virtual function CODE class MusicPlayer public virtual void Play cout Play on what endl class DVD public MusicPlayer public void Play cout Play on DVD endl

Không thể tạo bản xem trước, hãy bấm tải xuống
TÀI LIỆU MỚI ĐĂNG
16    68    2    26-04-2024
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.