Warum funktioniert das??
-
#include <iostream>
using namespace std;
class beispiel
{
public:
int funktion()
{
cout<<"ich funktioniere\n";
}
};
int main()
{
beispiel a;
a.funktion();return 0;
}------------------------------------
#include <iostream>
using namespace std;
class beispiel
{
public:
beispiel funktion()
{
cout<<"ich funktioniere\n";
}
};
int main()
{
beispiel a;
a.funktion();return 0;
}warum funktioniert das beides? ich habe die schreibweise unten noch nie gesehen.
ist das tatsächlich nur eine andere schreibweise oder hat das eine nähere bedeutung?
-
Ach, ein Ratespiel. Warum auch sollte man irgendein Wort über den Unterschied verlieren, wenn die anderen doch suchen können.
Beides ist undefiniertes Verhalten, da die Funktionen keinen Wert zurück liefern.
Und was überrascht dich an "beispiel" als Returnwert einer Funktion?
-
Falls es dir um das
beispiel funktion()
geht: Das ist dann eine Funktion die eben nichtint
returned, sondern ein Objekt vom Typbeispiel
. In dem konkreten Beispiel fehlt infunktion()
beide Male aber ein entsprechendesreturn
und das Programm hat damit undefiniertes Verhalten (aka kompiliert zwar, ist aber dennoch falsch).
-
Na toll, Ratespiele von Leuten, die nicht mal fähig sind ihren Code zu formatieren. Mag ich besonders.
-
dot schrieb:
Falls es dir um das
beispiel funktion()
geht: Das ist dann eine Funktion die eben nichtint
returned, sondern ein Objekt vom Typbeispiel
. In dem konkreten Beispiel fehlt infunktion()
beide Male aber ein entsprechendesreturn
und das Programm hat damit undefiniertes Verhalten (aka kompiliert zwar, ist aber dennoch falsch).aso ja alles klar dann weiss ich bescheid. das wollte ich wissen ,weil ich mir zuerst dachte,dass es sich dabei nur um eine andere formulierung o.ä. handelt.
danke für deine gescheite antwort:)