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

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

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.

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

 
Bà Nguyễn Huyền My - Giám đốc Marketing Ngành hàng Điện tử Nghe nhìn, Công ty Samsung Vina

Bà Nguyễn Huyền My - Giám đốc Marketing Ngành hàng Điện tử Samsung

Trong một năm, Samsung đưa ra thị trường nửa tỷ thiết bị. Do đó tập đoàn phải kết nối những thiết bị này với nhau để mang đến giải pháp phục vụ người tiêu dùng.

5,3 triệu máy Mac được bán ra vào Quý IV

5,3 triệu máy Mac được bán ra vào Quý IV

Doanh số của Apple có vẻ bị giảm, tuy nhiên trong quý này nó bắt đầu tăng trở lại. Theo báo cáo phân tích của Gene Munster thì đến cuối tháng 12 năm nay, doanh số bán ra của Apple có thể đạt tới 5.3 triệu máy.

Facebook muốn thân với Apple "diệt" Google+?

Facebook muốn thân với Apple "diệt" Google+?

Mark Zuckerberg đã nhận ra điểm mạnh của Google+ chính là được tích hợp vào hệ điều hành Android, hệ điều hành di động phổ biến nhất thế giới hiện nay. Android đang phát triển không ngừng, đồng nghĩa với việc ngày càng có nhiều người sử dụng Google+ trên thị trường điện thoại di động. Điều này trở thành một mối đe dọa khôn lường cho Facebook.

Công ty diệt chuột T&C

 

Diet con trung