Hàm inline trong C++

Hàm inline trong C++ là khái niệm mạnh mẽ mà được sử dụng phổ biến với các lớp. nếu một hàm là inline, thì compiler đặt một bản sao code của hàm đó tại mỗi vị trí mà hàm đó được gọi tại compile time.

Bất kỳ thay đổi nào tới một hàm inline có thể đòi hỏi tất cả các khách của hàm đó để được tái biên dịch bởi vì compiler sẽ cần thay thế tất cả code một lần nữa, nếu không thì nó sẽ tiếp tục với tính năng cũ.

Để làm một hàm là inline, đặt từ khóa inline ở trước tên hàm đó và định nghĩa hàm trước khi bất kỳ lời gọi được tạo ra với hàm đó. Compiler có thể bỏ qua định danh inline trong trường hợp hàm đã định nghĩa là nhiều hơn một dòng.

Một định nghĩa hàm trong một định nghĩa lớp là một định nghĩa hàm inline, ngay cả khi không sử dụng định danh inline.

Sau đây là ví dụ sử dụng hàm inline để trả về giá trị lớn nhất của hai số:

#include <iostream>
 
using namespace std;

inline int Max(int x, int y)
{
   return (x > y)? x : y;
}

// ham main cua chuong trinh
int main( )
{

   cout << "Gia tri lon nhat cua (30,20) la: " << Max(30,20) << endl;
   cout << "Gia tri lon nhat cua (15,10) la: " << Max(15,10) << endl;
   cout << "Gia tri lon nhat cua (120,1230) la: " << Max(120,1230) << endl;
   return 0;
}

Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:

Gia tri lon nhat cua (30,20) la: 30
Gia tri lon nhat cua (15,10) la: 15
Gia tri lon nhat cua (120,1230) la: 1230

Bình luận