Danh mục tài liệu

Bài giảng Lập trình hướng đối tượng - Từ C đến C++

Số trang: 16      Loại file: pdf      Dung lượng: 251.47 KB      Lượt xem: 9      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Lập trình hướng đối tượng - Từ C đến C++ trình bày những nội dung: Sự khác biệt đối với C, kiểu dữ liệu, kiểm tra kiểu dữ liệu, đổi và ép kiểu dữ liệu, const và con trỏ, hằng và tham chiếu làm tham số hàm.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng - Từ C đến C++ Từ C đến C++ Lập trình hướng đối tượngTài liệu đọcn Eckel, Bruce. Thinking in C++, 2nd Ed. Volume 1. ¨ Chapter 3: The C in C++ ¨ Chapter 8: Constants n Up to p. 352: Classes ¨ Chapter 10: Name Control n Up to p. 423: Static members in C++ ¨ Chapter 13: Dynamic Object Creation n Up to p. 566: Overloading new & delete ¨ Chapter 11: References and the Copy-Constructor n Up to p. 452: References in Functions@ 2004 Trần Minh Châu. FOTECH. VNU 2Khác biệt đối với Cn Các khác biệt đối với C (ngoài các đặc điểm hướng đối tượng) ¨ Chú thích ¨ Các kiểu dữ liệu ¨ Kiểm tra kiểu, đổi kiểu ¨ Cảnh báo của trình biên dịch ¨ Phạm vi và khai báo ¨ Không gian tên ¨ Hằng ¨ Quản lý bộ nhớ ¨ Tham chiếu@ 2004 Trần Minh Châu. FOTECH. VNU 3Chú thíchn Bên cạnh chú thích kiểu C (nhiều dòng), C++ cho phép kiểu chú thích dòng đơn C C++ /* This is a variable */ // This is a variable int x; int x; /* This is the variable // This is the variable * being given a value */ // being given a value x = 5; x = 5;@ 2004 Trần Minh Châu. FOTECH. VNU 4Chú thíchn C++ cho phép kiểu chú thích /* */ bao ngoài các chú thích dòng đơn. C C++ /* /* /* This is a variable */ // This is a variable int x; int x; /* This is the variable // This is the variable * being given a value */ // being given a value x = 5; x = 5; */ */ Chú thích có lỗi@ 2004 Trần Minh Châu. FOTECH. VNU 5Kiểu dữ liệun Kiểu giá trị Boolean: bool ¨ Hai giá trị: true hoặc false ¨ Các toán tử logic (!, &&, ...) lấy/tạo một giá trị bool ¨ Các phép toán quan hệ (==, Kiểm tra kiểu dữ liệun C++ kiểm soát kiểu dữ liệu chặt chẽ hơn Cn C++ đòi hỏi hàm phải được khai báo trước khi sử dụng (mọi lời gọi hàm được kiểm tra khi biên dịch)n C++ không cho phép gán giá trị nguyên cho các biến kiểu enum enum Temperature {hot, cold}; enum Temperature t = 1; // Error in C++n C++ không cho phép các con trỏ không kiểu (void*) sử dụng trực tiếp tại bên phải lệnh gán hoặc một lệnh khởi tạo void * vp; int * ip = vp; // Error: Invalid conversion@ 2004 Trần Minh Châu. FOTECH. VNU 7Đổi và ép kiểu dữ liệun C++ cho phép người dùng đổi kiểu dữ liệu một cách khá rộng rãin Trình biên dịch tự động thực hiện nhiều chuyển đổi dễ thấy: ¨ Gán một giá trị thuộc kiểu số học này cho một biến thuộc kiểu khác ¨ Các kiểu số học khác nhau cùng có trong các biểu thức ¨ Truyền đối số cho các hàmn Nếu hiểu rõ khi nào các chuyển đổi này xảy ra và trình biên dịch đang làm gì,ta có thể giải thích được các kết quả không mong đợi@ 2004 Trần Minh Châu. FOTECH. VNU 8Đổi và ép kiểu dữ liệun Tự động chuyển đổi từ các đối tượng nhỏ thành các đối tượng lớn thì không có vấn đề gì, chiều ngược lại có thể có vấn đề ¨ short → long (~16 bits → ~32 bits) không có vấn đề ¨ long → short (~32 bits → ~16 bits) có thể mất dữ liệu ¨ Khi chuyển từ các kiểu chấm động sang các kiểu nguyên có thể làm giảm độ chính xác của dữ liệun Trình biên dịch sẽ sinh cảnh báo (warning) đối với các chuyển đổi tự động có thể gây mất dữ liệu.@ 2004 Trần Minh Châu. FOTECH. VNU 9Đổi và ép kiểu dữ liệun C++ cho phép người dùng ép kiểu một cách tường minh bằng nhiều cách ¨ Ép kiểu kiểu C: myInt = (int) myFloat; ¨ Ép kiểu kiểu hàm C++: myInt = int(myFloat);n Để hạn chế ép kiểu quá mức và loại trừ các lỗi do ép kiểu, C++ cung cấp một cách mới sử dụng 4 loại ép kiểu tường minh ¨ static_cast ¨ const_cast ¨ reinterpret_cast ¨ dynamic_castn Cú pháp myInt = static_cast(myFloat)@ 2004 Trần Minh Châu. FOTECH. VNU 10Phạm vi và các Khai báon Trong C, các biến phải được định nghĩa tại đầu file hoặc tại bắt đầu của một khối {…}n C++ cho phép khai báo sau và phạm vi của các biến được giới hạn chính xác hơ ...