Functions
Function Parameters
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
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;
}
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;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-L2printBadge(name, level);
12 printBadge(nameAda, level2);13 return 0;14}
name ← Bjarne, level ← 2
8int main() {9 std::string name→ Bjarne = "Bjarne";10 int level→ 2 = 2;1112 printBadge(nameBjarne, level2);13 return 0;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-L2printBadge(name, level);
12 printBadge(nameBjarne, level2);13 return 0;14}
name ← Grace, level ← 2
8int main() {9 std::string name→ Grace = "Grace";10 int level→ 2 = 2;1112 printBadge(nameGrace, level2);13 return 0;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-L2printBadge(name, level);
12 printBadge(nameGrace, level2);13 return 0;14}
name ← Ada, level ← 1
8int main() {9 std::string name→ Ada = "Ada";10 int level→ 1 = 1;1112 printBadge(nameAda, level1);13 return 0;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-L1printBadge(name, level);
12 printBadge(nameAda, level1);13 return 0;14}
name ← Ada, level ← 4
8int main() {9 std::string name→ Ada = "Ada";10 int level→ 4 = 4;1112 printBadge(nameAda, level4);13 return 0;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-L4printBadge(name, level);
12 printBadge(nameAda, level4);13 return 0;14}
Follow the Parameters
namestarts asAda.levelstarts as2.printBadge(name, level)passes both values into the function.- The function prints the name,
-L, and the level. - 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.