Wie kann der automatische Typabzug für die Klassenmitglieder verwendet werden? Zum Beispiel den folgenden Code`auto` Rückgabetyp im Kontext von Klassenmitgliedern
struct A
{
auto foo(); // foo is defined in another file
};
int main()
{
A a;
a.foo();
}
wo foo
den Rückgabetyp auto
Ergebnisse in der folgenden Fehler hat:
error: function 'foo' with deduced return type cannot be used before it is defined
a.foo();
^
Der Fehler ist verständlich, da die Kompilierung kann nicht wissen, was foo
‚s Rückgabetyp ohne ist seine Definition kennen.
Meine Frage ist, wenn es eine Problemumgehung oder irgendeine Art von Programmiermuster gibt, um das Problem zu umgehen, dass automatische Rückgabetyp nicht für Klassenmember Funktionen verwendet werden kann, falls die Erklärung und Definition der Funktion getrennt ist.
Nein. Wenn Sie Rückgabetypabzug verwenden, muss die Definition ** sichtbar sein **, bevor Sie die Funktion (Element) verwenden können. – ildjarn
Sie können die Deklaration und Definition der Funktion trennen. Die Definition muss jedoch sichtbar sein, bevor die Funktion verwendet wird. – krzaq
Sie brauchen hier keine "Abhilfe", da es kein Problem gibt, das gelöst werden muss. Benutze 'auto' einfach nicht so. –