Heim > Backend-Entwicklung > C++ > Wie kann in C auf Inline-Friend-Funktionen zugegriffen werden?

Wie kann in C auf Inline-Friend-Funktionen zugegriffen werden?

Barbara Streisand
Freigeben: 2024-12-01 07:55:16
Original
664 Leute haben es durchsucht

How Can Inline Friend Functions Be Accessed in C  ?

Zugriff auf Inline-Friend-Funktionen: Lexikalischer und tatsächlicher Geltungsbereich

Bei der Deklaration von Inline-Friend-Funktionen innerhalb einer Klasse ist es wichtig, nicht nur deren lexikalischen zu berücksichtigen sondern auch ihren tatsächlichen Umfang. Lexikalisch liegen solche Funktionen innerhalb der Klasse, in der sie definiert sind. Allerdings kann ihre tatsächliche Zugänglichkeit je nach Kontext eingeschränkt sein.

Gemäß dem C-Standard (ISO/IEC 14882:2011), wenn ein Freund Wenn eine Funktion mit einem unqualifizierten Bezeichner innerhalb einer Klasse deklariert wird, verweist sie auf eine Funktion im nächstgelegenen umschließenden Namespace-Bereich. Diese Friend-Deklaration macht diese Funktion jedoch nicht für die normale Suche in diesem Bereich sichtbar. Stattdessen wird es nur über die argumentabhängige Suche (ADL) zugänglich gemacht.

Dieses Verhalten wird in 7.3.1.2/3 des Standards hervorgehoben:

„Wenn eine Freund-Deklaration in einer nicht -local-Klasse deklariert zuerst eine Klasse oder Funktion, die Freundklasse oder -funktion ist Mitglied des innersten umschließenden Namespace. Der Name des Freundes wird weder durch unqualifizierte Suche noch durch qualifizierte Suche gefunden Suche, bis eine passende Deklaration in diesem Namespace-Bereich bereitgestellt wird.“

Im Wesentlichen können Inline-Friend-Funktionen nur über ADL aufgerufen werden, was nicht möglich ist, wenn keine Argumente bereitgestellt werden. Daher führen Versuche, solche Funktionen direkt über den umschließenden Bereich der Klasse oder über Mitgliedsfunktionen aufzurufen, zu Kompilierungsfehlern, wie in den bereitgestellten Codebeispielen gezeigt.

Das obige ist der detaillierte Inhalt vonWie kann in C auf Inline-Friend-Funktionen zugegriffen werden?. 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