Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Überladene Funktionen

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
22.11.2006, 15:08 Uhr
~Snofu
Gast


Hallo,
ich habe hier eine anfänger Verständnissfrage zum Thema überladene Funktionen. Laut Theorie kann man eine Funktion durch die Anzahl der Parameter und/oder Parameter Typ überladen. Folgendes Code funktioniert aber nicht, das Program liefert jedesmal nur den ersten Parameter, obwohl ich in der Console zwei oder drei Parameter eingebe. Warum wird nicht die entsprechende Funktion aufgerufen?


C++:
#include <cstdlib>
#include <iostream>

using namespace std;

string testq(string a);
string testq(string a, string b);
string testq(string a, string b, string c);

int main(int argc, char *argv[])
{
    cout << argv[3] << endl;
    testq(argv[1]);
    testq(argv[1], argv[2]);
    testq(argv[1], argv[2], argv[3]);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
string testq(string a){
       cout << "Eingabe: " << a << endl;
       }
string testq(string a, string b){
       cout << "Eingabe: " << a << " und " << b << endl;
       }
string testq(string a, string b, string c){
       cout << "Eingabe: " << a << " und " << b << " und " << c << endl;
       }



Bearbeitung von 0xdeadbeef:

cpp-tags eingefügt. Nächstes mal selbst machen.


Dieser Post wurde am 22.11.2006 um 16:55 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.11.2006, 15:22 Uhr
BoBtheREapER
kein job für nen BoB


sollen deine funktionen jetzt einen string zurückgeben (weil sie das nicht tuen, es aber in der funktionsdeklaration steht), das ganze nur auf dem bildschirm ausgeben oder nur einen string zurückgeben?
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.11.2006, 15:31 Uhr
~Snofu
Gast


Nein, ich habe zwar den Rückgabewert als string angegeben, aber das ist nur ein Beispiel (also kann auch void sein). Die Zeile cout << argv[3] << endl; ist auch nur als Kontrolle gedacht, spielt also keine Rolle zu meiner Frage. Es geht mir nur darum, dass die entsprechende (richtige) Funktion abhängig von Anzahl der Parameter, aufgerufen wird.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.11.2006, 15:34 Uhr
Blubber2063



Lol, das aufrufen der richtigen Funktion ist doch deine Aufgabe, Funktionoverloading besagt doch nur das du das ding gleich benennen kannst und er die richtige Variante anhand der übergebenen Parameter erkennt, solange sich Zahl oder Typen der Parameter unterscheiden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.11.2006, 15:43 Uhr
~Snofu
Gast


Blubber2063, danke für die Rasche Antwort. Darin liegt auch mein Verständnisproblem: "...die richtige Variante anhand der übergebenen Parameter erkennt...".
 
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: