2016-03-23 18 views
2

Ich habe dies in wxWidgets gesehen und C++ Code-Stil:Wie lautet der Name in der Programmierung?

#include <iostream> 

class Foo { 
    int _x; 
    int _y; 
    public: 
     Foo() : _x(0), _y(0) {} 
     Foo (int x, int y) : _x(x), _y(y) {} 
     int get() const { return _x+_y; } 
}; 

int GetFoo (const Foo& f) { 
    return f.get(); 
} 

int main() { 
    Foo f1(2,3); // create object with values 
    std::cout << "Value1: " << f1.get() << '\n'; // access object method 
    std::cout << "Value2: " << GetFoo(Foo(3,7)) << '\n'; // How do you call this? 
    return 0; 
} 

ist, wenn Sie direkte Klasse mit einigen Werten verwenden. Ich benenne es passiere direkte Klasse als Objekt, aber ich würde gerne den richtigen Begriff wissen. Vielen Dank.

+0

durch Verweis gehen – AchmadJP

Antwort

5

Sie suchen wahrscheinlich nach dem Begriff "temporärer Wert" oder "temporär".

Dies beschreibt im Allgemeinen ein Objekt, das für die Dauer der Ausführung eines einzelnen Ausdrucks oder eines Teils davon instanziiert wird, nach dem das Objekt sofort zerstört wird.

Das ist, was hier passiert.

+0

Danke für die Informationen. – Joel

1

Die Funktion

int GetFoo (const Foo& f) { 
    return f.get(); 
} 

eine konstante Referenz (const Foo&). Der Begriff Referenz ist C++ spezifisch. Der allgemeine Begriff ist ein Alias; zwei Namen, die dieselbe Instanz beschreiben. Mit dem Qualifikationsmerkmal const können auch implizite Konvertierungen wirksam werden.

GetFoo(Foo(3,7)) 

ist die Schaffung eines temporären Objekt, das für die Dauer des Funktionsaufrufs dauert. Das temporäre Foo(3, 7) hat keinen Namen, wird jedoch in der Funktion als Alias ​​oder Verweis verwendet.

+0

oh, ich verstehe, aber es wird zerstört, oder? – Joel

+0

@Joel Ja, tut es. –

Verwandte Themen