Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Oefening met Constructor-Delegatie | Constructors en Destructors
C++ OOP

book
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

solution.cpp

#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?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6
single

single

#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

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

We use cookies to make your experience better!
some-alt