Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
16,87 MB
Nội dung
CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ Giới thiệu những điểm khác biệt chủ yếu giữa C và C++ Các điểm mới của C++ so với C CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 1. CÁC ĐIỂM KHÔNG TƯƠNG THÍCH GIỮA C++ VÀ ANSI C 1.1 Định nghĩa hàm Trong định nghĩa hàm ANSI C cho phép hai kiểu khai báo dòng tiêu đề của hàm, trong khi đó C++ chỉ chấp nhận một cách /* C++ không khai báo kiểu này *//* C++ không khai báo kiểu này */ double ham(a,b)double ham(a,b) int a;int a; double bdouble b ;; /* Cả C và C++ cho phép*//* Cả C và C++ cho phép*/ double ham(int a, double b)double ham(int a, double b) int a;int a; double b;double b; CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 1. CÁC ĐIỂM KHÔNG TƯƠNG THÍCH GIỮA C++ VÀ ANSI C 1.2 Khai báo hàm nguyên mẫu - Tronc C chỉ cần khai báo tên hàm và giá trị trả về, không cần danh sách kiểu của các tham số - C++ khai báo hàm nguyên mẫu Với C++ một lời gọi hàm chỉ được chấp nhận khi trình biên dịch biết được kiểu của các tham số, kiểu của giá trị trả về CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 1. CÁC ĐIỂM KHÔNG TƯƠNG THÍCH GIỮA C++ VÀ ANSI C 1.2 Khai báo hàm nguyên mẫu Chuyển kiểu tự động theo nguyên tắc sau: char -> int ->longint -> float ->double Ví dụ: double ham(int , double) /* khai báo hàm ham*/ …. main() { int n; char c; double x, x1, x2,x3; x1=ham(n,x); /* không có chuyển đổi kiểu*/ x2=ham(c,x); /* có chuyển đổi kiểu từ char->int*/ x3=ham(x,n); /* có chuyển đổi kiểu từ double ->int và từ int thành double */ …. CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 1. CÁC ĐIỂM KHÔNG TƯƠNG THÍCH GIỮA C++ VÀ ANSI C 1.3 Sự tương thích giữa con trỏ void và các con trỏ khác Trong ANSI C, kiểu void tương thích với các kiểu con trỏ khác cả hai chiều Ví dụ: void *g; int *i; Phép gán sau là hợp lệ g=i ; i=g ; Trong C++ chỉ có chuyển đổi kiểu ngầm định từ một kiểu con trỏ tùy ý thành void*, còn ngược lại phải thực hiện chuyển đổi kiểu tường minh. Ví dụ: g=i; i=(int*)g; CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 2. CÁC KHẢ NĂNG RA VÀO MỚI CỦA C++ Trong tệp tiêu đề isotream.h người ta định nghĩa hai đối tượng cout và cin tương ứng với hai thiết bị chuẩn ra vào được sử dụng cùng với << và >>. Thường thì ta hiểu cout là màn hình còn cin là bàn phím 2.1 Ghi dữ liệu ra thiết bị chuẩn cout Ví dụ 1 : #include <isostream.h> main() { cout << “Hello C++”; } CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 2. CÁC KHẢ NĂNG RA VÀO MỚI CỦA C++ 2.1 Ghi dữ liệu ra thiết bị chuẩn cout Sử dụng cout và << đưa ra các giá trị khác nhau Ví dụ 2 : #include <iostream.h> void main() { int n=25; cout << “value :“; cout << n; } Ví dụ 3 : #include <iostream.h> void main() { int n=25; cout << “value :“<<n ; } CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 2. CÁC KHẢ NĂNG RA VÀO MỚI CỦA C++ 2.1 Các khả năng viết ra trên cout Có thể sử dụng toán tử << cùng với cout để đưa ra màn hình giá trị của một biểu thức có các kiểu sau : Kiểu cơ sở (char, int, float, double) Xâu ký tự (char *) Con trỏ (trừ con trỏ char *) Trong trường hợp muốn đưa ra địa chỉ của xâu ký tự phải thực hiện việc chuyển đổi kiểu tường minh (char*)->(void*) CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 2. CÁC KHẢ NĂNG RA VÀO MỚI CỦA C++ 2.1 Các khả năng viết ra trên cout Ví dụ: #include <iostream.h> void main() { int n=25; long p=250000; unsigned q=63000 ; char c=’a’ ; float x=12.3456789; double y=12.3456789e16; char *st= “Hello C++”; int *ad=&n ; cout <<”Gia tri cua n :” <<n<< “\n”; cout <<”Gia tri cua p :” <<p<<”\n”; cout <<”Gia tri cua c :” <<c<<”\n”; cout <<”Gia tri cua q :” <<q<<”\n”; cout <<”Gia tri cua x :” <<x<<”\n”; cout <<”Gia tri cua y :” <<y<<”\n”; cout <<”Gia tri cua st :” <<st<<”\n”; cout <<”Dia chi cua ad :” <<ad<<”\n”; cout <<”Dia chi cua st :” <<(void*)st<<”\n”; } CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 2. CÁC KHẢ NĂNG RA VÀO MỚI CỦA C++ 2.2 Đọc dữ liệu từ thiết bị chuẩn cin Ví dụ 1: int n; cin>>n; Ví dụ 2: int n ; float p ; char c ; cin>>c>>n>>p ; Dùng toán từ >> để nhập dữ liệu cho các kiểu char, int, float, double và char* [...]... . CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ Giới thiệu những điểm khác biệt chủ yếu giữa C và C++ Các điểm mới của C++ so với C CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 1. CÁC ĐIỂM KHÔNG TƯƠNG THÍCH GIỮA C++ . nhận khi trình biên dịch biết được kiểu của các tham số, kiểu của giá trị trả về CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 1. CÁC ĐIỂM KHÔNG TƯƠNG THÍCH GIỮA C++ VÀ ANSI C 1.2 Khai báo hàm nguyên mẫu Chuyển. : #include <isostream.h> main() { cout << “Hello C++ ”; } CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++ 2. CÁC KHẢ NĂNG RA VÀO MỚI CỦA C++ 2.1 Ghi dữ liệu ra thiết bị chuẩn cout Sử dụng cout và <<