16 Stimmen

Welche Bedeutung hat die Rückgabe durch Verweis?

In C++,

function() = 10;

funktioniert, wenn die Funktion eine Variable per Referenz zurückgibt.

Was sind die Anwendungsfälle dafür?

0voto

Sam Miller Punkte 23398

En Idiom des benannten Parameters ist ein weiterer Anwendungsfall. Betrachten Sie

class Foo
{
public:
    Foo(
        int lions,
        float tigers,
        double bears,
        std::string zookeeper
    );
};

Benutzer dieser Klasse müssen sich die Position der einzelnen Parameter merken

Foo foo( 1, 2.0, 5, "Fred" );

was ohne einen Blick auf die Kopfzeile nicht offensichtlich sein kann. Verglichen mit einer Erstellerklasse wie dieser

class CreateFoo
{
friend class Foo;
public:
    CreateFoo();

    CreateFoo& lions(int lions) {
        _lions = lions;
         return *this;
    }

    CreateFoo& tigers(float tigers) {
        _tigers = tigers;
        return *this;
    }

    CreateFoo& bears(double bears) {
        _bears = bears;
        return *this;
    }

    CreateFoo& zookeeper(const std::string& zookeeper) {
        _zookeeper = zookeeper;
        return *this;
    }

private:
    int _lions;
    float _tigers;
    double _bears;
    std::string _zookeeper;
};

die dann von Clients wie folgt verwendet werden können

Foo foo = CreateFoo().
    lions(1).
    tigers(2.0).
    zookeeper("Fred").
    bears(5)
    ;

unter der Annahme, dass Foo hat einen Konstruktor, der eine const CreateFoo& .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X