Avatar ·

Wie deklariere ich ein Interface in C++? (Rein virtuelle Funktionen und abstrakte Klassen)

Hallo! Ich habe gerade angefangen, C++ nach Java zu lernen, und ich bin sehr verwirrt über das Fehlen des Schlüsselworts `interface` wie in Java oder C#. In Java war ich es gewohnt, Folgendes zu tun:\n\n```java\npublic interface Drawable {\n void draw();\n void resize(int width, int height);\n}\n```\n\nIn C++ kann ich kein direktes Äquivalent finden. Ich weiß, dass es in C++ abstrakte Klassen mit rein virtuellen Funktionen gibt, aber ich bin mir nicht sicher, wie ich sie richtig deklarieren und verwenden soll.\n\nZum Beispiel habe ich versucht, diesen Code zu schreiben:\n\n```cpp\nclass Drawable {\npublic:\n virtual void draw() = 0;\n virtual void resize(int width, int height) = 0;\n};\n```\n\nAber ich habe einige Fragen:\n1. Muss ich einen virtuellen Destruktor hinzufügen? Wenn ja, sollte er rein virtuell sein?\n2. Muss ich das Kopieren von Objekten einer solchen Klasse verhindern?