Function Declaration, Definition, and Calling in C++


Functions are a core feature of C++ that allow us to modularize code, making it more reusable and organized. A function in C++ has three primary parts: declaration, definition, and calling. This article explains each part and provides examples to illustrate how functions work in C++.

1. Function Declaration

A function declaration (also known as a function prototype) tells the compiler about the function's name, return type, and parameters without providing the actual body. Declaring a function before using it in the code is essential in C++.

Syntax of Function Declaration

    return_type function_name(parameter_list);
        

Example of Function Declaration

    #include <iostream>

    int add(int a, int b); // Declaration of the add function

    int main() {
        int result = add(5, 3); // Calling the function
        std::cout << "Result: " << result << std::endl;
        return 0;
    }

    int add(int a, int b) {
        return a + b;
    }
        

In this example, int add(int a, int b); is the declaration of the function add. It tells the compiler that the function takes two integers as parameters and returns an integer.

2. Function Definition

The function definition provides the actual body of the function. It specifies the code that will execute when the function is called.

Syntax of Function Definition

    return_type function_name(parameter_list) {
        // Function body
    }
        

Example of Function Definition

    #include <iostream>

    int add(int a, int b); // Declaration of the add function

    int main() {
        int result = add(5, 3); // Calling the function
        std::cout << "Result: " << result << std::endl;
        return 0;
    }

    // Definition of the add function
    int add(int a, int b) {
        return a + b;
    }
        

Here, the definition of add is provided after main(). The function takes two integers, adds them, and returns the sum.

3. Function Calling

A function call is the action of invoking a function by passing the required arguments. When a function is called, the program jumps to the function definition, executes the code within, and then returns to the caller.

Example of Function Calling

    #include <iostream>

    int add(int a, int b); // Declaration of the add function

    int main() {
        int result = add(5, 3); // Calling the function
        std::cout << "Result: " << result << std::endl;
        return 0;
    }

    int add(int a, int b) {
        return a + b;
    }
        

In this example, the function add is called with the arguments 5 and 3. The function executes and returns the sum, which is then displayed.

4. Putting It All Together

The following example demonstrates all three parts—declaration, definition, and calling—in a single program that calculates the area of a rectangle.

Example Program: Area of Rectangle

    #include <iostream>

    // Function declaration
    int area(int length, int width);

    int main() {
        int length = 5;
        int width = 10;
        int result = area(length, width); // Function call
        std::cout << "Area of rectangle: " << result << std::endl;
        return 0;
    }

    // Function definition
    int area(int length, int width) {
        return length * width;
    }
        

In this example:

  • Declaration: int area(int length, int width); tells the compiler that there is a function named area that takes two integers and returns an integer.
  • Definition: int area(int length, int width) { return length * width; } provides the body of the function, where the area of the rectangle is calculated.
  • Calling: area(length, width); invokes the function, passing the values length and width to calculate the area.

5. Conclusion

In C++, functions allow for reusable code that is easy to understand and maintain. By properly using function declaration, definition, and calling, you can create organized programs with modular code that can be reused across multiple parts of the program.





Advertisement