Heim > Backend-Entwicklung > C++ > Können Sie in CPP-Dateien definierte Mitgliedsfunktionen integrieren?

Können Sie in CPP-Dateien definierte Mitgliedsfunktionen integrieren?

DDD
Freigeben: 2024-10-27 22:25:02
Original
461 Leute haben es durchsucht

 Can You Inline Member Functions Defined in .cpp Files?

Inline-Member-Funktionsdefinition in .cpp-Datei platzieren

In diesem Artikel befassen wir uns mit dem Dilemma der Implementierung von Inline-Member-Funktionen in .cpp-Dateien trotz der Platzierungskonvention sie in Headern.

Das Problem entsteht durch die zirkuläre Einbindung, wie die folgenden Codeausschnitte zeigen:

<code class="cpp">// File A.h
#include "B.h"

class A {
    B b;
};</code>
Nach dem Login kopieren
<code class="cpp">// File B.h
#include "A.h" // forward declaration

class B {
    inline A getA();
};</code>
Nach dem Login kopieren

Aufgrund der zirkulären Abhängigkeit muss die Implementierung von getA() erfolgen in B.cpp platziert werden:

<code class="cpp">// File B.cpp
#include "B.h"
#include "A.h"

inline A B::getA() {
    return A();
}</code>
Nach dem Login kopieren

Wird der Compiler Inline getA?

Nein, es sei denn, die Verwendung von getA() erfolgt innerhalb von B.cpp selbst.

Bedeutung von Inline-Schlüsselwörtern

Das Inline-Schlüsselwort in der Definition außerhalb des Klassenkörpers ist am wichtigsten.

Alternative Möglichkeiten zur Inline-Definition Mitgliedsfunktionen in .cpp-Dateien

Leider gibt es keinen alternativen Ansatz zum Platzieren der Definition einer Inline-Mitgliedsfunktion in ihrer .cpp-Datei. Der Standard erfordert, dass der Compiler die Funktionsdefinition überall dort sieht, wo sie aufgerufen wird.

Das obige ist der detaillierte Inhalt vonKönnen Sie in CPP-Dateien definierte Mitgliedsfunktionen integrieren?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage