Tải bản đầy đủ (.ppt) (24 trang)

Tài liệu lập trình C tiếng Việt Lesson2 cppfeatures

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (334.31 KB, 24 trang )

Lập trình hướng đối tượng
Bài 2: Những mở rộng của C++


Nội dung



Lịch sử phát triển C++
Các mở rộng của C++
 Cấu

trúc chặt chẽ
 Các toán tử vào/ra mới
 Các tiện ích cho người lập trình
 Hàm inline
 Tham chiếu
 Định nghĩa chồng hàm
 Tham số mặc định
 Toán tử new và delete

2


Lịch sử phát triển C++


C++ là ngôn ngữ được phát triển dựa trên ngôn ngữ C








1983 Bjarne Stroustrup bắt
đầu nghiên cứu
1986 Version 1.0
1989 Version 2.0
1991 Version 3.0







1998 C++98
2003 C++03
2011 C++11
2014 C++14
2017 C++17

C++ bổ sung vào C hai đặc điểm mới
1.
2.

Các mở rộng: Tham chiếu, chồng hàm, tham số mặc
định,...
Hướng đối tượng


3


1. Cấu trúc chặt chẽ


Định nghĩa hàm
/* C++, error */
double fexample(u,v)
int u;
double v;







/* C++, C , ok */
double fexample(int u,
double v)

Khai báo hàm

Các hàm phải được khai báo trước khi được sử dụng
Chuyển kiểu

Giới hạn: char->int->longint->float->double

Chuyển kiểu một chiều từ con trỏ khác sang void*

Phải sử dụng từ khóa void cho các hàm không trả về giá trị
4


2. Khả năng vào/ra mới của C++


Toán tử << (sử dụng đối tượng cout – mặc định là màn hình)

#include <iostream> /*must declare to use object cout*/
void main()
{
cout<< “Welcome C++”;
}
Welcome C++

Các kiểu dữ liệu được viết ra bởi cout:




char, int, float, double
char*
pointer (except char*)

Escape Sequence


\a; \b; \f; \n; \r; \t; \‘; \“; \xdd
5



#include <iostream>
void main()
{
int n=25;
cout<< “Value: ”;
cout<}
Value: 25
#include <iostream>
void main(){
int n=25; char ch=‘h’; char s[]=“test”; float x=3.1416;
cout<Value: 25;h;test;3.1416
6




Toán tử >> (sử dụng đối tượng cin – mặc định là bàn phím)
 Nhập vào các dạng: char, int, float, double, char*
int n;
cin>>n;
int n;
float p;
char c;
cin>>c>>n>>p;

Ký tự phân cách:




SPACE, TAB, CR, LF
invalid character (exp character “.” while read int value)

Đọc vào giá trị chuỗi


cin.getline(s,charCount)

Clean input buffer


fflush(stdin); cin.clear();
7


3. Các tiện ích của người lập trình


Chú thích cuối dòng

cout<<“Hello\n”; // Greeting word


Khai báo mọi nơi

{
int n;

n=23;
cout<...
int *p=&n;
cout<...
}
8


{
...// no declare i variable
for(int i=0; ...; ...)
... //can’t declare variable i here
}


Toán tử phạm vi “::”

#include <iostream>
int x;
void main()
{
int x=10; // x local
cout<}
9


#include <iostream>

int x;
void main()
{
int x=10; // x local
::x=10; // x global
cout<cout<<::x<<“\n”; // x global
}

10


4. Hàm inline
#include <iostream>
inline double normal(double vec[3]); // Declare inline function
inline double normal(double vec[3]) // Define inline function
{
int i; double s=0
...
}
Lưu ý: Hàm inline phải được khai báo trong cùng file nguồn sử dụng nó
 Hàm inline là giải pháp thay thế MACRO
 Inline là một yêu cầu chứ không phải là một chỉ thị chương trình dịch

11


5. Tham chiếu
Tham chiếu là “bí danh” của biến “thực”.



Tham chiếu tới biến
int n;
int &p=n;
n=3;
cout<Tham chiếu phải được khởi tạo
int x=3, &y; // error
...
int &p=3; // not compatible
const int &p=3; // compatible
12




Các tham số của hàm là tham chiếu

void swap1(int x, int y)
{
int temp=x;
x=y;
y=temp;
}
void swap2(int *x, int *y)
{
int temp=*x;
*x=*y;
*y=temp;
}

13


void swap3(int &x, int &y)
{
int temp=x;
x=y;
y=temp;
}


Giá trị trả ra của hàm là tham chiếu

<type> &fct(...)
{
...
return <global variable>
}
14


#include <iostream>
#include <conio>
int a[5];
int &fr(int *d, int i){
return d[i];
}
void main(){
count<<“Input the values of array a\n”;
for (int i=0; i<5; i++){

cout<<“a[”<cin>>fr(a,i);
}
for(i=0; i<5; i++)
cout<cout<<“\n”;
}

15


6. Định nghĩa chồng hàm
Khả năng sử dụng một tên cho nhiều hàm khác nhau
int min(int, int);
int min(int, int *);
void main(){
int p=12, q=-12; td[7]={1,2,5,6,3,4,1};
cout<cout<}
int min(int a, int b){ return(a>b?a:b);}
int min(int n, int *t){
int res=t[0];
for (int i=1; ireturn res;
}
16


7. Tham số mặc định

void fct(int, int=12); //declare function with default parameter
void main(){
int n=10, p=20;
fct(n,p);
fct(n);
//fct(); //error
}
void fct(int a, int b){
cout<<“param 1: ”<}
param 1: 10
param 2: 20
param 1: 10
param 2: 12
17


Lưu ý:
 Tất cả các tham số với giá trị mặc định phải nằm cuối cùng trong danh
sách tham số
 Khai báo giá trị mặc định trong khai báo hàm chứ không phải trong định
nghĩa hàm

18


8. Toán tử quản lý bộ nhớ: new và delete


new


int *ad;
ad=new int; // ad= (int*)malloc(sizeof(int));
char *adc;
adc=new char[100]; // adc=(char*)malloc(sizeof(char)*100);


delete

delete ad;
delete [] adc;
Có thể sử dụng hàm set_new_handler để quản lý việc tràn bộ nhớ

19


Các dạng dữ liệu built-in của C

20


Các câu lệnh của C

21


Các toán tử
của C

22



Các biểu thức khai báo

23


Các khai báo hằng

24



×