Unterschied Basistyp/Klasse
-
Hallo allerseits,
ich unterhalte mich gerade mit einem ebenso halbwissenden Kollegen wie ich einer bin und wir streiten uns über den Unterschied Basistyp/Klasse.
Seine Behauptung: int, float, etc. seien Klassen.
Meine Behauptung: int, float, etc. sind Basistypen.Leider hab ich keine Resource gefunden, die mir den genauen Unterschied erklärt und ein unschlagbares Argument dafür gibt, dass ein int eben keine Klasse ist.
Wäre für kurze Eingebung dankbar.
Nachtrag: Wenn int ein Basistyp ist, wieso funktioniert dann folgender Konstruktorähnlicher Aufruf?
int a(0);
-
int float und so sind keine Klassen. Punkt.
-
Bester "Beweis":
Versuche doch mal die "Basistypen" abzuleiten!
-
asdfjgkjfdsa schrieb:
int float und so sind keine Klassen. Punkt.
mbu schrieb:
ein unschlagbares Argument
-
Das ist keine Glaubensfrage. Also brauchen wir keine Argumente sondern Fakten. Die 2te Antwort ist vielleicht das was du suchst.

-
- int, float, etc. sind "built-in-types"
- class, struct, .. sind "user-defined-types"Steht z.B. im Stroustrups "The C++ Programming Language"...
-
int und float sind fundamental types. Klassen sind compound types. Siehe §3.9 im Standard.
Ein Basistyp ist übrigens (meistens) ne Klasse.
class A {}; class B : public A {};A und B sind beides Klassen und A ist der Basistyp von B.
-
Zum Nachtrag:
Das ist kein Konstruktor! Du initialisierst nur.
DU KANNST INT ZUM BEISPIEL NICHT ABLEITEN!class int_derivat : public int { }; // GEEEEEHTTTTTTT NIIIIIIIICCCCCCCCHHHHHHHTTTTTT!!!!!!!!!!:p
-
mbu schrieb:
Nachtrag: Wenn int ein Basistyp ist, wieso funktioniert dann folgender Konstruktorähnlicher Aufruf?
int a(0);Das ist nur von der Syntax ähnlich wie ein Konstruktoraufruf. Aufgerufen wird da nichts.
Das ist aus Konsistenzgründen möglich. Man kann so zum Beispiel
new int(35)schreiben. Ausserdem ist es nützlich für Templates, wenn man nicht jeweils Typen unterscheiden muss.
-
Ein Designprinzip von C++ ist, dass es soweit möglich einen fließenden Übergang von primitiven Typen zu Klassentypen gibt. Das äußert sich z.B. in solchen Details.