Pass values into a function so the same code can work with different inputs.

parameter A parameter is a named value a function receives from its caller.

Function Parameters

example
function_parameters.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
#include <string>

void printBadge(std::string name, int level) {
    std::cout << "badge=" << name << "-L" << level << std::endl;
}

int main() {
    std::string name = "Ada";
    int level = 2;

    printBadge(name, level);
    return 0;
}
#include <iostream>
#include <string>

void printBadge(std::string name, int level) {
    std::cout << "badge=" << name << "-L" << level << std::endl;
}

int main() {
    std::string name = "Bjarne";
    int level = 2;

    printBadge(name, level);
    return 0;
}
#include <iostream>
#include <string>

void printBadge(std::string name, int level) {
    std::cout << "badge=" << name << "-L" << level << std::endl;
}

int main() {
    std::string name = "Grace";
    int level = 2;

    printBadge(name, level);
    return 0;
}
#include <iostream>
#include <string>

void printBadge(std::string name, int level) {
    std::cout << "badge=" << name << "-L" << level << std::endl;
}

int main() {
    std::string name = "Ada";
    int level = 1;

    printBadge(name, level);
    return 0;
}
#include <iostream>
#include <string>

void printBadge(std::string name, int level) {
    std::cout << "badge=" << name << "-L" << level << std::endl;
}

int main() {
    std::string name = "Ada";
    int level = 4;

    printBadge(name, level);
    return 0;
}
  1. name ← Ada, level ← 2

    8int main() {9    std::string name→ Ada = "Ada"; //@name="Bjarne", "Grace"10    int level→ 2 = 2; //@level=1, 41112    printBadge(nameAda, level2);13    return 0;
  2. void printBadge(std::string name, int level)

    4void printBadge(std::string nameAda, int level2) {5    std::cout << "badge=" << nameAda << "-L" << level2 << std::endl;6}
    outputbadge=Ada-L2
  3. printBadge(name, level);

    12    printBadge(nameAda, level2);13    return 0;14}
  1. name ← Bjarne, level ← 2

    8int main() {9    std::string name→ Bjarne = "Bjarne";10    int level→ 2 = 2;1112    printBadge(nameBjarne, level2);13    return 0;
  2. void printBadge(std::string name, int level)

    4void printBadge(std::string nameBjarne, int level2) {5    std::cout << "badge=" << nameBjarne << "-L" << level2 << std::endl;6}
    outputbadge=Bjarne-L2
  3. printBadge(name, level);

    12    printBadge(nameBjarne, level2);13    return 0;14}
  1. name ← Grace, level ← 2

    8int main() {9    std::string name→ Grace = "Grace";10    int level→ 2 = 2;1112    printBadge(nameGrace, level2);13    return 0;
  2. void printBadge(std::string name, int level)

    4void printBadge(std::string nameGrace, int level2) {5    std::cout << "badge=" << nameGrace << "-L" << level2 << std::endl;6}
    outputbadge=Grace-L2
  3. printBadge(name, level);

    12    printBadge(nameGrace, level2);13    return 0;14}
  1. name ← Ada, level ← 1

    8int main() {9    std::string name→ Ada = "Ada";10    int level→ 1 = 1;1112    printBadge(nameAda, level1);13    return 0;
  2. void printBadge(std::string name, int level)

    4void printBadge(std::string nameAda, int level1) {5    std::cout << "badge=" << nameAda << "-L" << level1 << std::endl;6}
    outputbadge=Ada-L1
  3. printBadge(name, level);

    12    printBadge(nameAda, level1);13    return 0;14}
  1. name ← Ada, level ← 4

    8int main() {9    std::string name→ Ada = "Ada";10    int level→ 4 = 4;1112    printBadge(nameAda, level4);13    return 0;
  2. void printBadge(std::string name, int level)

    4void printBadge(std::string nameAda, int level4) {5    std::cout << "badge=" << nameAda << "-L" << level4 << std::endl;6}
    outputbadge=Ada-L4
  3. printBadge(name, level);

    12    printBadge(nameAda, level4);13    return 0;14}

Follow the Parameters

  1. name starts as Ada.
  2. level starts as 2.
  3. printBadge(name, level) passes both values into the function.
  4. The function prints the name, -L, and the level.
  5. The output is badge=Ada-L2. | value passed | printed part | | --- | --- | | Ada | Ada | | 2 | L2 | | combined | badge=Ada-L2 |

Exercise: function_parameters.cpp

Reproduce badge=Ada-L2, then change only name to Bjarne to predict badge=Bjarne-L2, and change only level to 4 to predict badge=Ada-L4.