bedeutung vom schlüsselwort "const"
-
wenn ich einen kopierkonstruktor ohne const mache kommen die lustigsten sachen raus,... entweder er kopiert nicht oder ich bekomm einen kompillierfehler... aber wofür ist das "const" eigentlich da?
dynArray(dynArray<T> const& ref);ich weiß das ein objekt danach nicht geändert werden darf und das eine const memberfunktion das priveleg hat eine const. objekt aufzurufen...
aber warum darf hier nicht mitdynArray(dynArray<T> &ref);gearbeitet werden? bzw. mit
dynArray(dynArray<T> ref);wenn erst eine kopie erstellt wird und diese dann übergeben...
wozu das const?
dann wundere ich mich über die stellung des schlüsselwortes in member fkt.void class::fkt() const
warum nicht:void const class::fkt()naja jetzt wo ich sehe würde dass ja nur für get-fkt. sinn machen
okay selbst beantwortet :xmas2:trotzdem dass mit dem kopierkonstruktor versteh ich nicht.
könnte mir dass mal jem erklären? aber bitte einfach bin nur gymnasiast
-
hab noch ein bissel rumprobiert
#include "stdafx.h" #include <iostream> using namespace std; class foo { private: int a, b; public: foo(int x, int y) { a = x; b = y; }; void ausgabe() { cout<<a<<endl<<b<<endl; } void ausgabe() const { cout<<a<<endl<<b<<endl; } }; int _tmain(int argc, _TCHAR* argv[]) { const foo foo(1,2); foo.ausgabe(); system("Pause"); }wie man sieht sind durch das "const" vorm init des objekt "foo" die privates auch const und können nur durch eine const member zurückgegeben werden!
damit wärs jetzt gekärt warum das const für member ist. damit dürfte ein const fkt() schema nicht existieren! ODER?
warum setzt der compiler nicht selbst ein const hinter eine fkt. wenn er auf ein const objekt zugreift?marry xmas :xmas1: :xmas1: :xmas1: