PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interfaces in C++



axeljaeger
21-10-2002, 15:15
Gibt es in C++ auch Interfaces und wenn ja, macht es Sinn, sie einzusetzen?

peschmae
21-10-2002, 15:58
wie in java, meinst du?

nein, ich glaube nicht, aber dafür gibts mehrfachvererbung, d.h. du machst eine Klasse, die von zwei anderen gleichzeitig abgeleitet sein kann

MfG Peschmä

oracle2025
21-10-2002, 16:16
abstrakte klasse nennt man sowas

anda_skoa
21-10-2002, 19:40
Der Vorteil gegenüber einem Interface ist, dass man eben einige Methoden/Variablen schon definieren kann.

Das was in Java eine Abstrakte Methode ist, ist in C++ eine pure virtual



class AbstractBase
{
public:
virtual void abstractMethode() = 0; // das = 0 macht sie pure
}


Ciao,
_

peschmae
22-10-2002, 07:54
das entspricht also +- dem "final" in java?
aber interfaces wie in java gibts nicht?

MfG Peschmä

Lin728
22-10-2002, 08:50
Hi,

Soweit ich weiß gibts dazu kein Equivalent.

Lg

anda_skoa
22-10-2002, 10:41
Original geschrieben von peschmae
das entspricht also +- dem "final" in java?


Nein! :rolleyes:
Das ist das Gegenteil von final.
Wenn in Java eine Methode final ist, kann sie nicht mehr überschrieben werden.
Das sind in C++ alle Methodn per default, man muß sie überschreibbar machen, indem man virtual als Keyword vorne dran schreibt.

Der Default in Java ist genau anders rum.
Da ist alles per default überschreibbar und man muß es final machen.



aber interfaces wie in java gibts nicht?


Doch, schreib ich doch.



public interface MyInterface
{
public void doIt();
public boolean haveIDoneIt();
}




class MyInterface
{
public:
virtual void doIt() = 0;
virtual bool haveIDoneIt() = 0;
}


Ciao,
_

peschmae
22-10-2002, 11:56
Doch, schreib ich doch.

ja jetzt schon, aber vorher doch nicht?

MfG Peschmä

anda_skoa
22-10-2002, 12:16
Original geschrieben von peschmae
ja jetzt schon, aber vorher doch nicht?


Ja, du hast recht, ich dachte ich hätte.

Ciao,
_