Oefening met Constructor-Delegatie
Taak
Swipe to start coding
Je werkt met een klasse die meerdere constructors heeft. Tijdens een code review werd gevraagd deze te refactoren met behulp van initialisatielijsten voor betere prestaties en nettere code.
- De standaardconstructor moet delegeren naar de hoofdconstructor, waarbij standaardwaarden worden doorgegeven.
- De constructor die alleen de naam instelt, moet ook delegeren en standaardwaarden gebruiken voor de andere velden.
- Degene die naam en leeftijd instelt, moet eveneens delegeren en een standaard salaris doorgeven.
- De volledig geparameteriseerde constructor blijft ongewijzigd.
Oplossing
solution.cpp
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <string>
class Employee {
public:
Employee()
: Employee("undefined", 0, 0) {}
Employee(std::string name)
: Employee(name, 0, 0) {}
Employee(std::string name, float age)
: Employee(name, age, 0) {}
Employee(std::string name, float age, float salary)
: name(name), age(age), salary(salary) {}
std::string name;
int age, salary;
};
int main() {}
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 2. Hoofdstuk 6
single
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
class Employee {
public:
Employee()
: name("undefined"), age(0), salary(0) {}
Employee(std::string name)
: name(name), age(0), salary(0) {}
Employee(std::string name, float age)
: name(name), age(age), salary(0) {}
Employee(std::string name, float age, float salary)
: name(name), age(age), salary(salary) {}
std::string name;
int age, salary;
};
int main() {}
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.