Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Mal ein paar fragen...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.12.2003, 13:38 Uhr
~DFK
Gast


Hi, da ich nix zu tun hab dachte ich mir ich frag euch mal ein bischen aus

Wozu braucht man uberladene operatoren und was bewirken sie??? (hab ich nie gerafft)

Thx im Vorraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.12.2003, 13:49 Uhr
virtual
Sexiest Bit alive
(Operator)


Naja, man braucht sie im wesentlichen einfach nur deshalb, weil man damit den Code übersichtlicher schreiben kann. Zwingend erforderlich sind sie nicht. Nehmen wir mal die Klasse string:

C++:
string s1 = "Hallo ";
string s2 = "~DFK";
string s3;

s3 = s1 + s2;


string ist ne klasse, also kein eingebauter Typ. Wenn man nun + Rechnen will (also String aneinanderhängen), muß man den + Operator überladen, weil die Operatoren erstmal nur für die eingebauten typen definiert sind. Analoges gilt für den = Operator. Die STL Klassen wie zB eben string haben immer noch die Alternative, ohne operatoen klarzukommen, zB:

C++:
s3.assign(s1);
s3.append(s2);


Ist identisch mit der Zeile oben.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.12.2003, 13:55 Uhr
~DFK
Gast


Aha ein bischen klarer aber nicht viel

Kannst du ein beispiel machen mit einem überladenem Operator????
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.12.2003, 14:06 Uhr
typecast
aka loddab
(Operator)


Hier mal ein einfaches Beispiel:


C++:
int a, b;
double c;



Wenn du diese Zahlen miteinader multiplierzieren willst, dann brauchst du zwei verschiedene Operatoren:

C++:
int operator+(int x, int y)
{
  // Zähle zahlen zusammen
}

double operator+(int x, double y)
{
//..
}



Damit kannst du folgende Opertionen machen:

C++:
a = a+ b;
c = a+c;



Damit kannst du dann zum Beispiel den +-Operator für selbstgeschriebene Klassen definieren.

Hilft das weiter?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.12.2003, 14:12 Uhr
~DFK
Gast


Aha also definiert man den + Operator selbst neu in seiner eigenen Klasse um verschiedene Typen oder so zu Addieren???


Zitat:

int operator+(int x, int y)
{
// Zähle zahlen zusammen
}



was kommt in die Function, oder weiss der Compiler durch operator+ das man die Argumente addieren will?

Ich weiss ich weiss aber es will einfach nicht so ganz in meinen Kopf
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.12.2003, 14:15 Uhr
typecast
aka loddab
(Operator)


Wenn der Kompiler einen Ausdruck mit
int + int sieht, dann weiß er, dass er die Funktion operator+(int, int) aufrufen muss.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.12.2003, 14:16 Uhr
typecast
aka loddab
(Operator)


PS: Du kannst in operator+ auch was komplett anderes machen als addieren, aber die meisten Leute verstehen unter dem +-Operator meistens die Addition
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.12.2003, 14:21 Uhr
~DFK
Gast


Ahhhhhhha, jetzt hat's gefunkt

Auf den Klick im Kopf hab ich gewartet

Danke vielmals habt mir sehr geholfen, hab zwar zur Zeit mit überladen von operatoren nix am Hut aber immer schön wenn man was neues lernt

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: