Giá trị mặc định của tham số

Giá trị mặc định của tham số

Khi định nghĩa một hàm chúng ta có thể chỉ định những giá trị mặc định sẽ được truyền cho các đối số trong trường hợp chúng bị bỏ qua khi hàm được gọi. Để làm việc này đơn giản chỉ cần gán một giá trị cho đối số khi khai báo hàm. Nếu giá trị của tham số đó vẫn được chỉ định khi gọi hàm thì giá trị mặc định sẽ bị bỏ qua.

Ví dụ:

// default values in functions

#include

int divide (int a, int b=2)

{int r;

r=a/b;

return (r);

}int main ()

{cout << divide (12);

cout << endl;

cout << divide (20,4);

return 0;

}

6
5

Nhưng chúng ta thấy trong thân chương trình, có hai lời gọi hàm divide. Trong lệnh đầu tiên:

divide (12)

chúng ta chỉ dùng một tham số nhưng hàm divide cho phép đến hai. Bởi vậy hàm divide sẽ tự cho tham số thứ hai giá trị bằng 2 vì đó là giá trị mặc định của nó (chú ý phần khai báo hàm được kết thúc bởi int b=2). Vì vậy kết quả sẽ là 6 (12/2).

Trong lệnh thứ hai:

divide (20,4)

có hai tham số, bởi vậy giá trị mặc định sẽ được bỏ qua. Kết quả của hàm sẽ là 5 (20/4).

Quá tải các hàm

Hai hàm có thể có cũng tên nếu khai báo tham số của chúng khác nhau, điều này có nghĩa là bạn có thể đặt cùng một tên cho nhiều hàm nếu chúng có số tham số khác nhau hay kiểu dữ liệu của các tham số khác nhau (hay thậm chí là kiểu dữ liệu trả về khác nhau). Ví dụ:

// overloaded function

#include

int divide (int a, int b)

{return (a/b);

}float divide (float a, float b)

{return (a/b);

}int main ()

{int x=5,y=2;

float n=5.0,m=2.0;

cout << divide (x,y);

cout << ” “;

cout << divide (n,m);

return 0;

}

2
2.5

Trong ví dụ này chúng ta định nghĩa hai hàm có cùng tên nhưng một hàm dùng hai tham số kiểu int và hàm còn lại dùng kiểu float. Trình biên dịch sẽ biết cần phải gọi hàm nào bằng cách phân tích kiểu tham số khi hàm được gọi.

Để đơn giản tôi viết cả hai hàm đều có mã lệnh như nhau nhưng điều này không bắt buộc. Bạn có thể xây dựng hai hàm có cùng tên nhưng hoạt động hoàn toàn khác nhau.

Các hàm inline

Chỉ thị inline có thể được đặt trước khao báo của một hàm để chỉ rõ rằng lời gọi hàm sẽ được thay thế bằng mã lệnh của hàm khi chương trình được dịch. Việc này tương đương với việc khai báo một macro, lợi ích của nó chỉ thể hiện với các hàm rất ngắn, tốc độ chạy chương trình sẽ được cải thiện vì nó không phải gọi một thủ tục con.

Cấu trúc của nó như sau:

inline type name ( arguments … ) { instructions … }
lời gọi hàm cũng như bất kỳ một hàm nào khác. Không cần thiết phải đặt từ khoá inline trong lệnh gọi, chỉ cần trong lời khai báo hàm là đủ.

(Theo OurViet Network)

Tags: 
Bạn thấy bài viết này như thế nào?: 
Average: 10 (1 vote)
Ảnh của Binh Tran Thanh

Drupal Consultant

Started my career as a drupal8 developer in EM Solutions . I love learning Web technologies like HTML, CSS, PHP, Jquery Ajax and Drupal backend . Currently working as a drupal backend developer.

Bình luận (0)

 

Add Comment

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
3 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Facebook "mở kho" ứng dụng cho giao diện Timeline

Facebook "mở kho" ứng dụng cho giao diện Timeline

Facebook bắt đầu cho phép người dùng sử dụng giao diện Timeline tải về các ứng dụng bổ sung để tích hợp vào "tường nhà".

Facebook thanh lọc, hàng loạt fanpage giải trí “chết nhăn răng”

Từ chiều ngày hôm 13/1, cộng đồng admin fanpage Việt Nam nháo nhào khi hàng loạt fanpage lớn bị khóa không rõ lí do. Những fanpage bị block trong đợt thanh lọc này có lượng like từ vài chục nghìn cho tới cả gần triệu lượt like.

Nhà máy linh kiện MTXT Apple MacBook Trung Quốc vẫn đóng cửa

Nhà máy linh kiện MTXT Apple MacBook Trung Quốc vẫn đóng cửa

Nhà chức trách Trung Quốc tiếp tục kiểm tra nhà máy sản xuất vỏ nhôm cho MTXT MacBook của Apple sau phàn nàn của cư dân về mùi hôi phát ra từ nơi sản xuất này.

BLOG POSTS

 

Wordpress Freelancer

 

Wordpress Freelancer