Thứ năm, 22 Tháng mười một 2001, 16:55 GMT+7

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)

Phần sau: Đệ quy

Theo dòng sự kiện:
Ngôn ngữ C (11/10/2001)

Nhận xét tin Giá trị mặc định của tham số

Ý kiến bạn đọc

Viết phản hồi

Bạn có thể gửi nhận xét, góp ý hay liên hệ về bài viết Giá trị mặc định của tham số bằng cách gửi thư điện tử tới Lien He Bao Viet Nam. Xin bao gồm tên bài viết Gia tri mac dinh cua tham so ở dạng tiếng Việt không dấu. Hoặc Giá trị mặc định của tham số ở dạng có dấu. Bài viết trong chuyên đề Kinh Nghiệm của chuyên mục Công Nghệ.

default value of the parameter
default value, of the parameter, in this case, function calls, for value, can, declare, assign, we, for some, the definition , Int, the type, the command

When defining a function we can specify the default value will be passed to the argument in case they are ignored when the function is called. To do this, simply assign a value to the function declaration argument. If the value of ...



  • Thoi su 24h Nick Vujicic tai su kien Nick chao Viet Nam
    Thời sự 24h: Nick Vujicic tại sự kiện "Nick chào Việt Nam"

    EVN thông báo về sự cố mất điện toàn miền Nam; Sốc vì thu nhập "bèo" của các mại dâm nam; Trung Quốc "già mồm" đòi chủ quyền Trường Sa của Việt Nam; Xuất hiện "bút bi thần kì" lợi hại hơn "bút phù thủy"; Phố “trai gọi” chuyên phục vụ quý bà; "Rẻ" như "sao" Việt... là những tin tức nóng nhất trong ngày 23/05.

  • Thoi su 24h 2205 Mot trinh nu Viet gia toi thieu 3000 USD
    Thời sự 24h (22/05): Một trinh nữ Việt, giá tối thiểu 3000 USD

    Sốc giá tối thiểu 3.000 USD "mua" một trinh nữ Việt; Vụ “nam giới bán dâm”: Có cả giáo viên tham gia!; Hàn Quốc: Mối đe dọa từ Triều Tiên “chưa từng có”; Ăn sữa chua mít: Tự đầu độc mình?; Phẫn nộ clip nhóm thiếu niên trêu chọc cụ già; Sự khác biệt thú vị giữa trẻ con ngày ấy và bây giờ... là những tin nóng nhất trong ngày 21/05.

  • Thoi su 24h Bi tiem vac xin het dat chau be soc thuoc
    Thời sự 24h: Bị tiêm vắc xin "hết đát", cháu bé "sốc" thuốc

    Côn đồ truy sát nữ sinh: Dân lý giải chuyện đứng nhìn; Thu phí nhạc số: Không thành công cũng thành nhân; Vòi rồng khổng lồ san phẳng ngoại ô Mỹ, 51 người chết; Hàng ngàn người Hà Nội ăn nước phở bẩn mỗi sáng; Chuyện "đo đạc" thí sinh hoa hậu; Điệp khúc mất điện mùa nóng, chiêu tăng giá của EVN?... là những tin nóng nhất trong ngày 21/05

  • Thoi su 24h Hang chuc nguoi Viet Nam bi vi khuan an thit
    Thời sự 24h: Hàng chục người Việt Nam bị vi khuẩn 'ăn thịt'

    Thiết bị gián điệp tinh vi xuất hiện ở Hà Nội; M.U 5-5 West Brom: Sir Alex chia tay trong sự điên rồ; Hàn Quốc triển khai tên lửa sát biên giới Triều Tiên; Rùng rợn những cơn ghen mất tính người; Vi khuẩn “ăn thịt người” ở Việt Nam; “Sao” Việt dự LHP Cannes làm gì?; Một lít xăng đang cõng 4 loại thuế, 3 loại phí...là những tin nóng nhất trong ngày 20/05.

  • Thoi su 24h Phat tu sinh vien vi tuyen truyen chong nha nuoc
    Thời sự 24h: Phạt tù sinh viên vì tuyên truyền chống nhà nước

    Phạt tù cựu sinh viên vì "tuyên truyền chống nhà nước"; Nữ "dị nhân" HN nói chuyện được với cụ rùa Hồ Gươm?; Beckham chính thức nói lời từ giã bóng đá; Đài Loan phớt lờ Trung Quốc, khuyến cáo Philippines; 20 cặp đồng tính linh đình diễu hành và tổ chức đám cưới... là những tin nóng nhất trong ngày 17/05.