2017-11-14 1 views
1

Ich sehe eine C++ Funktion, wie unten definiert ist:kann eine C++ Funktion mit 'virtual inline' definiert werden?

int virtual inline fun() 
{ 
    return xxx; 
} 

Ich frage mich, was es bedeutet? kann jemand es erklären?

+3

C/C++ existiert nicht erste Lektion. – Stargateur

+1

Jede Funktion kann "inline" sein, aber nur nicht statische Klassenmemberfunktionen können "virtuell" sein. – VTT

+4

C/C++ ist undefiniertes Verhalten in C und C++, ist die zweite Lektion. – Bathsheba

Antwort

0

Es bedeutet einfach, den Code nicht kompiliert.

Nur nicht-statische Methoden können virtual sein. In Ihrem Beispiel ist fun eine freie Funktion, so dass virtual nicht darauf angewendet werden kann.

+0

aber die Funktion mit diesem Formular beendet. und ich kann es in meinem vs2015 erfolgreich kompilieren. – AndrewGong

+0

@AndrewGong Ich bezweifle es sehr. Es gibt keine Möglichkeit dies zu kompilieren. – bolov

+0

Es sei denn, das ist eine Methode, aber Sie haben das in Ihrem Beitrag nicht gezeigt. In Ihrem Beitrag haben Sie eine freie Funktion gezeigt. Das kann nicht kompiliert werden. Wenn der Code, den Sie haben, und der Code, den Sie zeigen, unterschiedlich sind, ist das ein anderes Problem. Und wir können nicht anfangen zu erraten, was Ihr wirklicher Code ist. – bolov

Verwandte Themen