Wie deklariere ich ein Interface in C++? Reine virtuelle Funktionen und abstrakte Klassen
Hallo zusammen! Ich habe vor kurzem angefangen, C++ nach Java zu lernen, und habe ein Problem mit der Deklaration von Interfaces. In Java bin ich es gewohnt, `interface MyInterface { void doSomething(); }` zu schreiben, und jede Klasse kann es implementieren.
Aber in C++ kann ich kein Äquivalent zum Schlüsselwort `interface` finden. Ich habe versucht, eine Klasse mit normalen virtuellen Funktionen zu erstellen, aber der Compiler beschwert sich, dass die Klasse nicht instanziiert werden kann, wenn die Funktion nicht rein virtuell ist. Hier ist, was ich geschrieben habe:
```cpp
class IShape {
public:
virtual double area(); // Fehler: nicht rein virtuell
virtual void draw(); // Auch ein Fehler
};
```
Dann habe ich `= 0` hinzugefügt, und der Code hat kompiliert:
```cpp
class IShape {
public:
virtual double area() = 0;
virtual void draw() = 0;
};
```
Aber ich bin mir nicht sicher, ob das der richtige Weg ist.