Tracks
/
C++
C++
/
Übungen
/
Testament
Testament

Testament

Lernübung

Einführung

Namensräume

Eine wichtige Methode zur Organisation von Code ist die Verwendung von Namensräumen. Zwei Funktionen könnten eine Namenskollision haben, die sich auflösen lässt, indem man sie in verschiedene Namensräume packt. Namensräume lassen sich verschachteln, was helfen kann, große Codebasen zu strukturieren. Der Zugriff auf die Namensräume erfolgt über den Gültigkeitsbereichsoperator ::.

Das folgende Beispiel zeigt, wie zwei verschiedene Funktionen namens foo verwendet werden. Sie werden zusammen verwendet, indem man ihre jeweiligen Namensräume voranstellt.

namespace my_ns {
    int foo() {
        return 44;
    }
    namespace my_inner_ns {
        int baz() {
            return 90;
        }
    }
}
namespace my_other_ns {
    int foo() {
        return -2;
    }
}

int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};

Anleitung

Du arbeitest für eine renommierte Anwaltskanzlei, die sich auf außergewöhnliche Testamentsangelegenheiten spezialisiert hat.

In dieser Übung öffnest du einen geheimnisvollen Tresor. Du bist der Testamentsvollstrecker und setzt die lange gehüteten Geheimcodes dreier Familien zusammen, um eine Kontonummer und den passenden Code zu erhalten.

Damit keine Familie den Tresor allein öffnen kann, lässt er sich nur öffnen, indem man ihr Wissen mit einem geheimen Modifikator kombiniert, den du aus dem letzten Willen kennst.

Du hast drei Aufgaben, die alle dazu dienen, den Familien beim Öffnen des Tresors zu helfen.

1. Nimm Platz vor den Familien und leg deine Unterlagen aus

Definiere einen Namespace mit dem Namen estate_executor. Der Code aus den nächsten Aufgaben sollte im Inneren des Namespace estate_executor definiert werden.

namespace some_name {
    // The space between the curly brackets
    // is called body of the  namespace.
}

2. Finde die geheime Kontonummer

Das ist dein großer Moment. Nur du hast den geheimen Modifikatorschlüssel, um die geheime Kontonummer zu enthüllen.

Definiere die Funktion assemble_account_number(int secret_modifier), die den geheimen Modifikator als Argument entgegennimmt und die zusammengesetzte Kontonummer als int zurückgibt.

Um die richtige Nummer zu erhalten, musst du die bank_number_part jeder der drei Familien aufsummieren.

3. Letzter Schritt: Gib den Geheimcode ein

Die Anweisungen im Testament verlangen, dass du zuerst alle blauen und dann alle roten Fragmente addierst. Den resultierenden Code erhältst du, indem du beide Summen multiplizierst.

Definiere die Funktion assemble_code(), die den resultierenden Code zurückgibt, indem sie die Fragmente der drei Familien zu einer einzigen integer kombiniert. Die Funktion hat keine Argumente und stützt sich allein auf die Informationen in den relevanten Namespaces der Familien.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
C++ Exercism

Bereit, mit Testament zu starten?

Melde dich bei Exercism an, um C++ mit 19 Konzepte100 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.