#include<iostream>
using namespace std;
class C{
private:
int value;
public:
C(){
value = 0;
cout<<"default constructor"<<endl;
}
C(const C& c){
value = c.value;
cout<<"copy constructor"<<endl;
}
};
int main(){
C c1;
C c2 = C();
}
Ausgang:Gibt es einen Unterschied zwischen C c; und Cc = C();
Standardkonstruktors
Standardkonstruktors
Frage:
Für C c1;
Standardkonstruktors wird natürlich genannt werden, denn C c2 = C();
ich Standardkonstruktors gedacht wird aufgerufen, um ein temporäres Objekt zu initialisieren ct, dann kopieren Konstruktor wird Aufruf c2 initialisieren, Es scheint, dass ich falsch liege. Warum?
Schlüsselwörter: Rückgabewert Optimierung, Kopie Elision. –
Da Compiler ist schlauer als Sie denken. –
Schlüsselwörter: * Wert Initialisierung *, * Kopie Initialisierung *. – juanchopanza