Classes
Member Functions
Member functions operate on the data inside an object.
member function
A member function is called with an object, so it can read or update that object's fields.
Member Functions
member_functions.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
class ScoreCard {
public:
int points;
ScoreCard(int start) {
points = start;
}
void addPoints(int amount) {
points += amount;
}
bool passed() {
return points >= 70;
}
};
int main() {
int start = 62;
int bonus = 12;
ScoreCard quiz(start);
quiz.addPoints(bonus);
std::cout << "points=" << quiz.points << std::endl;
std::cout << "passed=" << quiz.passed() << std::endl;
return 0;
}
#include <iostream>
class ScoreCard {
public:
int points;
ScoreCard(int start) {
points = start;
}
void addPoints(int amount) {
points += amount;
}
bool passed() {
return points >= 70;
}
};
int main() {
int start = 50;
int bonus = 12;
ScoreCard quiz(start);
quiz.addPoints(bonus);
std::cout << "points=" << quiz.points << std::endl;
std::cout << "passed=" << quiz.passed() << std::endl;
return 0;
}
#include <iostream>
class ScoreCard {
public:
int points;
ScoreCard(int start) {
points = start;
}
void addPoints(int amount) {
points += amount;
}
bool passed() {
return points >= 70;
}
};
int main() {
int start = 75;
int bonus = 12;
ScoreCard quiz(start);
quiz.addPoints(bonus);
std::cout << "points=" << quiz.points << std::endl;
std::cout << "passed=" << quiz.passed() << std::endl;
return 0;
}
#include <iostream>
class ScoreCard {
public:
int points;
ScoreCard(int start) {
points = start;
}
void addPoints(int amount) {
points += amount;
}
bool passed() {
return points >= 70;
}
};
int main() {
int start = 62;
int bonus = 5;
ScoreCard quiz(start);
quiz.addPoints(bonus);
std::cout << "points=" << quiz.points << std::endl;
std::cout << "passed=" << quiz.passed() << std::endl;
return 0;
}
#include <iostream>
class ScoreCard {
public:
int points;
ScoreCard(int start) {
points = start;
}
void addPoints(int amount) {
points += amount;
}
bool passed() {
return points >= 70;
}
};
int main() {
int start = 62;
int bonus = 20;
ScoreCard quiz(start);
quiz.addPoints(bonus);
std::cout << "points=" << quiz.points << std::endl;
std::cout << "passed=" << quiz.passed() << std::endl;
return 0;
}
start ← 62, bonus ← 12
20int main() {21 int start→ 62 = 62; //@start=50, 7522 int bonus→ 12 = 12; //@bonus=5, 202324 ScoreCard quiz(start62);25 quiz.addPoints(bonus);points ← 62
7ScoreCard(int start62) {8 points→ 62 = start62;9}quiz ← (empty)
24ScoreCard quiz→ (empty)(start62);25quiz(empty).addPoints(bonus12);points ← 74
11void addPoints(int amount12) {12 points→ 74 += amount12;13}quiz.addPoints(bonus);
24ScoreCard quiz(start);25quiz(empty).addPoints(bonus12);2627std::cout << "points=" << quiz(empty).points << std::endl;28std::cout << "passed=" << quiz(empty).passed() << std::endl;29return 0;outputpoints=74bool passed()
15bool passed() {16 return points74 >= 70;17}std::cout << "passed=" << quiz.passed() << std::endl;
27 std::cout << "points=" << quiz.points << std::endl;28 std::cout << "passed=" << quiz(empty).passed() << std::endl;29 return 0;30}outputpassed=1
start ← 50, bonus ← 12
20int main() {21 int start→ 50 = 50;22 int bonus→ 12 = 12;2324 ScoreCard quiz(start50);25 quiz.addPoints(bonus);points ← 50
7ScoreCard(int start50) {8 points→ 50 = start50;9}quiz ← (empty)
24ScoreCard quiz→ (empty)(start50);25quiz(empty).addPoints(bonus12);points ← 62
11void addPoints(int amount12) {12 points→ 62 += amount12;13}quiz.addPoints(bonus);
24ScoreCard quiz(start);25quiz(empty).addPoints(bonus12);2627std::cout << "points=" << quiz(empty).points << std::endl;28std::cout << "passed=" << quiz(empty).passed() << std::endl;29return 0;outputpoints=62bool passed()
15bool passed() {16 return points62 >= 70;17}std::cout << "passed=" << quiz.passed() << std::endl;
27 std::cout << "points=" << quiz.points << std::endl;28 std::cout << "passed=" << quiz(empty).passed() << std::endl;29 return 0;30}outputpassed=0
start ← 75, bonus ← 12
20int main() {21 int start→ 75 = 75;22 int bonus→ 12 = 12;2324 ScoreCard quiz(start75);25 quiz.addPoints(bonus);points ← 75
7ScoreCard(int start75) {8 points→ 75 = start75;9}quiz ← (empty)
24ScoreCard quiz→ (empty)(start75);25quiz(empty).addPoints(bonus12);points ← 87
11void addPoints(int amount12) {12 points→ 87 += amount12;13}quiz.addPoints(bonus);
24ScoreCard quiz(start);25quiz(empty).addPoints(bonus12);2627std::cout << "points=" << quiz(empty).points << std::endl;28std::cout << "passed=" << quiz(empty).passed() << std::endl;29return 0;outputpoints=87bool passed()
15bool passed() {16 return points87 >= 70;17}std::cout << "passed=" << quiz.passed() << std::endl;
27 std::cout << "points=" << quiz.points << std::endl;28 std::cout << "passed=" << quiz(empty).passed() << std::endl;29 return 0;30}outputpassed=1
start ← 62, bonus ← 5
20int main() {21 int start→ 62 = 62;22 int bonus→ 5 = 5;2324 ScoreCard quiz(start62);25 quiz.addPoints(bonus);points ← 62
7ScoreCard(int start62) {8 points→ 62 = start62;9}quiz ← (empty)
24ScoreCard quiz→ (empty)(start62);25quiz(empty).addPoints(bonus5);points ← 67
11void addPoints(int amount5) {12 points→ 67 += amount5;13}quiz.addPoints(bonus);
24ScoreCard quiz(start);25quiz(empty).addPoints(bonus5);2627std::cout << "points=" << quiz(empty).points << std::endl;28std::cout << "passed=" << quiz(empty).passed() << std::endl;29return 0;outputpoints=67bool passed()
15bool passed() {16 return points67 >= 70;17}std::cout << "passed=" << quiz.passed() << std::endl;
27 std::cout << "points=" << quiz.points << std::endl;28 std::cout << "passed=" << quiz(empty).passed() << std::endl;29 return 0;30}outputpassed=0
start ← 62, bonus ← 20
20int main() {21 int start→ 62 = 62;22 int bonus→ 20 = 20;2324 ScoreCard quiz(start62);25 quiz.addPoints(bonus);points ← 62
7ScoreCard(int start62) {8 points→ 62 = start62;9}quiz ← (empty)
24ScoreCard quiz→ (empty)(start62);25quiz(empty).addPoints(bonus20);points ← 82
11void addPoints(int amount20) {12 points→ 82 += amount20;13}quiz.addPoints(bonus);
24ScoreCard quiz(start);25quiz(empty).addPoints(bonus20);2627std::cout << "points=" << quiz(empty).points << std::endl;28std::cout << "passed=" << quiz(empty).passed() << std::endl;29return 0;outputpoints=82bool passed()
15bool passed() {16 return points82 >= 70;17}std::cout << "passed=" << quiz.passed() << std::endl;
27 std::cout << "points=" << quiz.points << std::endl;28 std::cout << "passed=" << quiz(empty).passed() << std::endl;29 return 0;30}outputpassed=1