C++ inline function is powerful concept that is commonly used with classes. If a function is inline, the compiler places a copy of the code of that function at each point where the function is called at compile time.
Any change to an inline function could require all clients of the function to be recompiled because compiler would need to replace all the code once again otherwise it will continue with old functionality.
Defining an Inline FunctionTo define an inline function, place the keyword inline before the function name and define the function before any calls are made to the function. The compiler can ignore the inline qualifier in case defined function is more than a line.
A function definition in a class definition is an inline function definition, even without the use of the inline specifier.
ExampleFollowing is an example, which makes use of inline function to return max of two numbers −
#include <iostream> using namespace std; inline int Max(int x, int y) { return (x > y)? x : y; } // Main function for the program int main() { cout << "Max (20,10): " << Max(20,10) << endl; cout << "Max (0,200): " << Max(0,200) << endl; cout << "Max (100,1010): " << Max(100,1010) << endl; return 0; }
When the above code is compiled and executed, it produces the following result −
Max (20,10): 20 Max (0,200): 200 Max (100,1010): 1010Inline Function with Classes
By default, all the functions that are defined inside a class are implicitly inline. If you want to explicitly define a function as inline, then you have to declare a function inside the class and write its definition outside the class. The inline keyword is used with the function definition that is outside of the class declaration.
ExampleIn the following example, we are defining an inline function with the class −
#include <iostream> using namespace std; class Number { private: int num1; int num2; public: // Function to set the values void setValues(int a, int b); // Function to print the values void printValues(); // Inline function to add the two numbers inline int addNumbers(); }; // Member function definitions void Number::setValues(int a, int b) { num1 = a; num2 = b; } void Number::printValues() { cout << "Number 1: " << num1 << ", Number 2: " << num2 << endl; } // Inline function definition inline int Number::addNumbers() { return num1 + num2; } int main() { // Create an object Number n; // Set the values n.setValues(10, 20); // Print the values n.printValues(); // Add the numbers and print the result int sum = n.addNumbers(); cout << "Sum of the numbers: " << sum << endl; return 0; }Advantages of Inline Function
The following are the advantages of using inline function −
Some of the disadvantages of inline functions are as follows –
Some of the disadvantages of inline function are as follows −
cpp_classes_objects.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4