Kann eine Schnittstelle in C++ nicht virtuelle Funktionen haben?Schnittstelle gegen abstrakte Klassen C++
oder
eine Schnittstelle in der C++ kann nicht nur virtuelle Funktion (proto-Typen) enthalten,?
Kann eine Schnittstelle in C++ nicht virtuelle Funktionen haben?Schnittstelle gegen abstrakte Klassen C++
oder
eine Schnittstelle in der C++ kann nicht nur virtuelle Funktion (proto-Typen) enthalten,?
Im Allgemeinen ist eine "Interface" -Klasse (in fast allen OO-Sprachen) eine Klasse mit nur einer Schnittstelle, keine Daten und keine Implementierung.
In C++ ist solch eine Klasse eine Klasse mit reinen abstrakten Funktionen, also können Sie keine "Interface" -Klasse in C++ haben, wenn Sie nicht-virtuelle Funktionen haben.
Danke Joachim Ich verstehe deine Art zu antworten –
C++ hat keine Schnittstellen per se. Somit sind ihnen keine Beschränkungen auferlegt.
Abstrakte Klassen werden normalerweise zur Darstellung von Schnittstellen verwendet. Es ist eine Frage der Konvention, ob Sie Standardimplementierungen für virtuelle Methoden definieren und finale Methoden in schnittstellenartigen Klassen zulassen.
Seit C++ 11 gibt es ein kontextabhängiges Schlüsselwort "final", das "virtual" bedeutet, also ist Ihr letzter Satz ein bisschen vage, wenn Sie sich sowohl auf nicht-virtuelle als auch auf virtuelle Funktionen beziehen wollen. –
Mit "final" meinte ich altmodische Vintage Finals, die kein "virtuelles" Keyword haben. 'Non-virtual' wäre wahrscheinlich korrekter Begriff. – bipll
Nun, ironischerweise können "nicht-virtuelle Finale" durch abgeleitete Funktionen verdeckt werden, während echte Finale * nicht * versteckt werden können und somit sogar noch finaler sind :-) –
Was bedeutet "Schnittstelle" für Sie? –