Ich weiß, dass Inline-Member-Funktionen per Definition in den Header aufgenommen werden sollten. Was aber, wenn es nicht möglich ist, die Implementierung der Funktion in den Header zu setzen? Nehmen wir diese Situation:
Datei Ah
#pragma once
#include "B.h"
class A{
B b;
};
Datei Bh
#pragma once
class A; //forward declaration
class B{
inline A getA();
};
Aufgrund des Rundschreibens muss ich die Umsetzung von getA
in setzen
B.cpp
#include "B.h"
#include "A.h"
inline A B::getA(){
return A();
}
Wird der Compiler inline getA
? Wenn ja, welches Inline-Schlüsselwort ist das signifikante (das im Header oder das in der CPP-Datei)? Gibt es eine andere Möglichkeit, die Definition einer Inline-Member-Funktion in die CPP-Datei aufzunehmen?