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

Ngôn ngữ lập trình C++ 1 - Tuần 6

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 (86.1 KB, 27 trang )


NGÔN NGỮ LẬP TRÌNH C++ 1
Tuần 6

Nội dung trình bày

Tham chiếu và hàm có nhiều giá trị trả về.

Hàm có đối số mặc định

Quá tải hàm

Hàm inline

Hàm đệ quy

Tham chiếu là gì ?

Tham chiếu là một bí danh của biến khác.

Khi tạo ra một tham chiếu, gán nó lên một
biến khác thì tham chiếu hoạt động như
chính biến đã gán đến nó.

Cú pháp:
<Kiểu giá trị> &Tên tham chiếu = Biến đã tồn tại;

Ví dụ:
int a = 6;
int &b = a;


Tham chiếu là gì ?

Tham chiếu tương tự trong thực tế như
một người có thể được gán một bí danh
khác (một người có nhiều tên gọi khác
nhau).

Trong mô hình bộ nhớ máy tính thì địa chỉ
của tham chiếu chính là địa chỉ của biến
mà nó tham chiếu đến.

Tham chiếu là gì ?

Ta không thể gán thêm một lần nữa tên
của tham chiếu cho một biến khác.
int a = 5;
int b = 8;
int &c = a;
&c = b; // Lỗi tại đây

Kiểu dữ liệu của tham chiếu phải trùng với
kiểu dữ liệu của biến mà nó tham chiếu
đến.

Tham chiếu là gì ?

Ta có thể tham chiếu đến một bí danh
(cũng là một tham chiếu)
int a = 5;
int &b = a;

int &c = b;

Ta chỉ được tham chiếu đến một biến cụ
thể chứ không được tham chiếu đến một
kiểu dữ liệu.
int &x = int; // Lỗi tại đây

Truyền tham chiếu cho hàm

Nhắc lại về truyền tham trị:

Đối số truyền cho hàm là các tham trị

Ví dụ:
void Doicho(int x, int y)
{
int tam;
tam=x;
x=y;
y=tam;
}

Giá trị của các tham số hình thức x, y chỉ được đổi chỗ
cho nhau trong pham vi của hàm. Nhưng giá trị các
tham số thực sẽ không đổi chỗ được cho nhau.

Truyền tham chiếu cho hàm

Truyền tham chiếu cho hàm:


Để các tham số thực có thể đổi chỗ được cho nhau, ta thay các
đối số truyền cho hàm là các tham trị.

Ví dụ:
void Doicho(int &x, int &y)
{
int tam;
tam=x;
x=y;
y=tam;
}

Khi goi hàm, biến được truyền trưc tiếp, 2 giá trị x và y thực sự
được đổi chỗ cho nhau
int a = 5, b = 8;
Doicho(a, b);

Hàm trả về nhiều giá trị

Ta đã học hàm trả về một giá trị, đó chính
là giá trị trả về cho hàm (thông qua câu
lệnh return)

Chúng ta sẽ sử dụng kỹ thuật truyền tham
chiếu để thay đổi các biến ngoài ngay bên
trong hàm, và như vậy ta có thể coi hàm
“trả về” nhiều giá trị.

Hàm trả về nhiều giá trị


Ví dụ:

Xây dựng hàm trả về giá trị của diện tích và chu vi
hình tròn với đầu vào là bán kính r
void HinhTron(float r, float &dientich, float &chuvi)
{
dientich = 3.14 * r * r;
chuvi = 2 * 3.14 * r;
}

Khi gọi hàm phải truyền biến vào tham chiếu để nhận
giá trị trả về
HinhTron(r, dt, cv);

×