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

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


lop_va_doi_tuong_trong_cplusplus.jsp


Tài liệu giáo viên