Danh mục

CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C+

Số trang: 32      Loại file: pdf      Dung lượng: 16.87 MB      Lượt xem: 13      Lượt tải: 0    
tailieu_vip

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

CÁC ĐIỂM KHÔNG TƯƠNG THÍCH GIỮA C++ VÀ ANSI C1.1 Định nghĩa hàmTrong đị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 */ double ham(a,b) int a; double b ; /* Cả C và C++ cho phép*/ double ham(int a, double b) int a; double b;1.2 Khai báo hàm nguyên mẫuTronc 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...
Nội dung trích xuất từ tài liệu:
CHƯƠNG 2:NHỮNG MỞ RỘNG CỦA C+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 CCHƯƠ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 C1.1 Định nghĩa hàmTrong đị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ả C và C++ cho phép*/ double ham(a,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 C1.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 C1.2 Khai báo hàm nguyên mẫuChuyển kiểu tự động theo nguyên tắc sau: char -> int ->longint -> float ->doubleVí 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 C1.3 Sự tương thích giữa con trỏ void và các con trỏ khácTrong ANSI C, kiểu void tương thích với các kiểu con trỏ khác cả hai chiềuVí 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 >. Thường thì ta hiểu cout là màn hình còn cin là bàn phím2.1 Ghi dữ liệu ra thiết bị chuẩn coutVí dụ 1 :#include main(){ cout 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 coutSử dụng cout và 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 coutCó thể sử dụng toán tử (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 coutVí dụ: cout 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 cinVí 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++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 cinGiống với hàm scanf(), cin tuân theo một số qui ước dùng trong việc phân tích các ký tự  Các giá trị số được phân cách bởi : SPACE, TAB, CR, LF. Khi gặp một ký tự không hợp lệ như dấu “.” đối với số nguyên, chữ cái đối với số, ... sẽ kết thúc việc đọc cin, ký tự không hợp lệ này sẽ được xem xét trong lần đọc sau  Đối với gía trị xâu ký tự, dấu phân cách cũng là SPACE, TAB, CR còn đối với gía trị ký tự, dấu phân cách là dấu CR. Trong hai trường hợp này không có khái niệm “ký tự không hợp lệ”. Mã sinh ra do nhấn phím Enter của lần nhập trước vẫn được xét trong lần nhập chuỗi hay ký tự tiếp theo và do đó sẽ có nguy cơ không nhập được đúng giá trị mong muốn khi đưa ra lệnh nhập xâu lý tự hoặc ký tự ngay sau các lệnh nhập cá giá trị khác. Giải pháp khắc phục ta dùng một trong hai lệnh saufflush(stdin) ; // khai báo trong stdio.hcin.clear(); // hàm thành phần của lớp cinCHƯƠ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 cinVí dụ :#includevoid main(){int n;float x;char t[81] ; do { cout >n>>t>>x ; cout CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++3. NHỮNG TIỆN ÍCH CHO NGƯỜI LẬP TRÌNH3.1 Ghi chú thích cuối dòngC++ dùng // để chỉ ra một dòng là chú thíchVí dụcout CHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++3. NHỮNG TIỆN ÍCH CHO NGƯỜI LẬP TRÌNH3.1 Toán tử phạm vi ::Ví dụ 1: Ví dụ 2:int a=5 ; #includemain() int a ;{ main() int a=10 ; { int a=10; // a cục bộ coutCHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++4. HÀM INLINETrong C++ ta có thể định nghĩa các hàm được thay thế trực tiếp thành mã lệnh máytại chổ gọi (inline) mỗi lần được tham chiếu. Ưu điểm của hàm inline là chúng khôngđòi hỏi các thủ tục bổ sung khi gọi hàm và trả về giá trị. Do vậy, hàm inline đượcthực hiện nhanh hơn so với các hàm thông thườngCHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++4. HÀM INLINE Ví Ví dụ : getch(); #include } // định nghĩa hàm inline #include inline inline long tong(int a[]); // khai báo inline long tong(int a[]) hàm hàm inline { void main() int i; { long s=0; int i; for (i=0;iCHƯƠNG 2: NHỮNG MỞ RỘNG CỦA C++5. THAM CHIẾUNgôn ngữ C++ giới thiệu một khái niệm mới là tham chiếu ”reference”. Một ...

Tài liệu được xem nhiều:

Tài liệu cùng danh mục:

Tài liệu mới: