Angenommen, wir konstante Elementfunktion über typedef
erklären möchten:Konst Memberfunktion und typedef, C++
typedef int FC() const;
typedef int F();
struct A
{
FC fc; // fine, we have 'int fc() const'
const F fc; // not fine, 'const' is ignored, so we have 'int fc()'
};
Da const
ignoriert das Programm kompiliert in Ordnung. Warum wird const
für die Funktion ignoriert? Da wir Const Pointer auf diese Weise bilden können, ist das einzige, was ich mir vorstellen kann, "C-Erbe". Sagt der Standard etwas darüber?
'int() const' ist meistens ein halber Typ, da er nur auf Klassen angewendet werden kann, um Memberfunktionen zu haben. – Jarod42
Es kann nicht "C-Erbe" sein, da C keine Mitgliedsfunktionen hat. – Jarod42
Ja, aber in C können wir noch haben: typedef int F(); const F f; obwohl 'int f() const' syntaktisch falsch sein kann. – igntec