ein einzelner Wert Getter-Funktion zu verwenden ist einfach und effizient:
void needs_x_only(Foo const& object)
{
int const x = object.x(); // Using single item getter function.
(void) x;
}
Wenn die x()
Funktion inline
der Compiler die meisten ist, wird dies wahrscheinlich optimieren bis zu ein direkter Zugriff des relevanten Datenmitglieds.
Die Verwendung eines Getter-Objekts mit mehreren Elementen, das als Routine mit Aus-Argumenten entworfen wurde, kann weniger klar sein, wenn Sie nicht alle Elemente benötigen und die Verwendung von const
für die Argumente verhindert. Eine Möglichkeit, const
zu unterstützen (was allgemein wünschenswert ist), besteht darin, eine kleine Wrapper-Funktion zu schreiben. Z. B.
auto position_of(Foo const& object)
-> Point<int>
{
int x;
int y;
object.get_xy(x, y); // Using out-arguments getter routine.
return {x, y};
}
Hier Point
ist einige Klasse, die struct
einen 2D-Punkt definiert.
Dann die Hülle verwenden kann wie folgt aussehen:
void needs_both_x_and_y(Foo const& object)
{
Point<int> const position = position_of(object);
(void) position;
}
Sie schrieb bereits die Funktion, die das tut, so etwas ist hier die Frage? Wie ruft man eine Funktion in C++ auf? – Lundin