Bird
Raised Fist0
C++programming~5 mins

Function declaration and definition in C++

Choose your learning style10 modes available
Introduction

Functions help us organize code into small, reusable pieces. Declaration tells the program about a function's name and inputs, while definition gives the actual instructions.

When you want to reuse the same code multiple times without rewriting it.
When you want to split a big task into smaller, easier steps.
When you want to tell the program about a function before using it in the code.
When you want to keep your code clean and easy to read.
When you want to separate the function's interface from its details.
Syntax
C++
return_type function_name(parameter_list);  // Function declaration

return_type function_name(parameter_list) {
    // function body (code)
}

The return_type tells what kind of value the function gives back.

The parameter_list is the list of inputs the function needs, inside parentheses.

Examples
This declares and defines a function add that takes two integers and returns their sum.
C++
int add(int a, int b);  // Declaration

int add(int a, int b) {
    return a + b;
}
This declares and defines a function greet that prints a message and returns nothing (void).
C++
void greet();  // Declaration

void greet() {
    std::cout << "Hello!" << std::endl;
}
This declares and defines a function multiply that multiplies two decimal numbers.
C++
double multiply(double x, double y);  // Declaration

double multiply(double x, double y) {
    return x * y;
}
Sample Program

This program declares a function square before main. Then it defines it after main. The function calculates the square of a number.

C++
#include <iostream>

// Function declaration
int square(int number);

int main() {
    int num = 5;
    std::cout << "Square of " << num << " is " << square(num) << std::endl;
    return 0;
}

// Function definition
int square(int number) {
    return number * number;
}
OutputSuccess
Important Notes

You can declare a function before main and define it later in the code.

If you define a function before main, you don't need a separate declaration.

Function declarations help the compiler know about functions used before their definitions.

Summary

Function declaration tells the program about a function's name, return type, and parameters.

Function definition provides the actual code that runs when the function is called.

Separating declaration and definition helps organize code and allows reuse.

Practice

(1/5)
1. What is the main purpose of a function declaration in C++?
easy
A. To execute the function's code
B. To tell the program the function's name, return type, and parameters
C. To create a variable inside the function
D. To print output to the screen

Solution

  1. Step 1: Understand function declaration role

    A function declaration informs the compiler about the function's name, return type, and parameters without providing the actual code.
  2. Step 2: Differentiate declaration from definition

    The function definition contains the actual code to run, while declaration only tells the program what to expect.
  3. Final Answer:

    To tell the program the function's name, return type, and parameters -> Option B
  4. Quick Check:

    Function declaration = function signature [OK]
Hint: Declaration = function signature only, no code [OK]
Common Mistakes:
  • Confusing declaration with definition
  • Thinking declaration runs code
  • Mixing variable creation with function declaration
2. Which of the following is a correct function declaration in C++?
easy
A. int add(int a, int b);
B. int add(int a, int b) { return a + b; }
C. int add = (int a, int b);
D. add(int a, int b) int;

Solution

  1. Step 1: Identify correct syntax for declaration

    A function declaration includes the return type, function name, parameter list, and ends with a semicolon without a body.
  2. Step 2: Check each option

    int add(int a, int b); matches declaration syntax. int add(int a, int b) { return a + b; } is a definition. Options C and D have invalid syntax.
  3. Final Answer:

    int add(int a, int b); -> Option A
  4. Quick Check:

    Declaration ends with semicolon, no body [OK]
Hint: Declaration ends with semicolon, no braces [OK]
Common Mistakes:
  • Writing function body in declaration
  • Missing semicolon at end
  • Incorrect parameter syntax
3. What will be the output of this code?
int multiply(int x, int y);

int main() {
int result = multiply(3, 4);
std::cout << result;
return 0;
}

int multiply(int x, int y) {
return x * y;
}
medium
A. 0
B. 7
C. Error: multiply not defined
D. 12

Solution

  1. Step 1: Understand function declaration and definition

    The function multiply is declared before main and defined after main, which is allowed in C++.
  2. Step 2: Calculate multiply(3, 4)

    The function returns 3 * 4 = 12, which is printed by std::cout.
  3. Final Answer:

    12 -> Option D
  4. Quick Check:

    3 * 4 = 12 [OK]
Hint: Declaration before use, definition after is valid [OK]
Common Mistakes:
  • Thinking definition must be before main
  • Confusing declaration with definition
  • Expecting compile error without definition before main
4. Identify the error in this code:
void greet();

int main() {
greet();
return 0;
}

void greet() {
std::cout << "Hello!" << std::endl
}
medium
A. Return type of greet should be int
B. Function greet is not declared
C. Missing semicolon after std::endl
D. Missing parentheses in greet call

Solution

  1. Step 1: Check function declaration and definition

    The function greet is declared and defined correctly with void return type and no parameters.
  2. Step 2: Identify syntax error in function body

    The line with std::cout << "Hello!" << std::endl is missing a semicolon at the end, causing a syntax error.
  3. Final Answer:

    Missing semicolon after std::endl -> Option C
  4. Quick Check:

    Statements must end with semicolon [OK]
Hint: Check semicolons after output statements [OK]
Common Mistakes:
  • Forgetting semicolon after std::endl
  • Thinking declaration missing causes error
  • Assuming wrong return type
5. You want to declare a function int max(int a, int b); and define it later. Which of these definitions correctly implements it to return the larger number?
hard
A. int max(int a, int b) { if (a > b) return a; else return b; }
B. int max(int a, int b) { return a + b; }
C. int max(int a, int b) { if (a < b) return a; else return b; }
D. int max(int a, int b) { return 0; }

Solution

  1. Step 1: Understand function purpose

    The function max should return the larger of the two integers a and b.
  2. Step 2: Evaluate each definition

    int max(int a, int b) { if (a > b) return a; else return b; } returns a if a > b, else b, correctly returning the maximum. Options A, B, and C do not correctly return the maximum value.
  3. Final Answer:

    int max(int a, int b) { if (a > b) return a; else return b; } -> Option A
  4. Quick Check:

    Return larger value using if-else [OK]
Hint: Use if (a > b) return a; else return b; [OK]
Common Mistakes:
  • Returning sum instead of max
  • Returning smaller value by mistake
  • Returning constant zero
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard