Heim > Backend-Entwicklung > C++ > Können C-Funktionen Standardwerte für nicht konstante Referenzparameter haben?

Können C-Funktionen Standardwerte für nicht konstante Referenzparameter haben?

Susan Sarandon
Freigeben: 2024-11-29 17:54:11
Original
756 Leute haben es durchsucht

Can C   Functions Have Default Values for Non-Const Reference Parameters?

Standardwert für referenzierten Parameter in C

Können Sie bei der Übergabe eines Parameters per Referenz in C einen Standardwert dafür angeben?

Betrachten Sie die folgende Funktionsdeklaration:

virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
Nach dem Login kopieren

Der Versuch, diesen Code zu kompilieren, führt zu einem Fehler:

error C2440: 'default argument' : cannot convert from 'const int' to 'unsigned long &'
A reference that is not to 'const' cannot be bound to a non-lvalue
Nach dem Login kopieren

Die Antwort

Standardwerte können nur konstanten Referenzen zugewiesen werden, nicht nicht konstanten Referenzen. Dies liegt daran, dass C das Binden einer temporären Referenz (in diesem Fall des Standardwerts) an eine nicht konstante Referenz verbietet.

Um diese Einschränkung zu umgehen, können Sie eine tatsächliche Instanz als Standardwert verwenden:

static int AVAL = 1;

void f( int &x = AVAL ) {
   // stuff
} 

int main() {
     f();       // equivalent to f(AVAL);
}
Nach dem Login kopieren

Diese Methode ist jedoch nur begrenzt in der Praxis anwendbar.

Das obige ist der detaillierte Inhalt vonKönnen C-Funktionen Standardwerte für nicht konstante Referenzparameter haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage