Überladene Rückgabetypen sind normaler weiße nicht möglich. Mit Funktionsobjekten lässt sich jedoch aber so ein Effekt erzielen.
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
class foo
{
public:
int operator()() { return n++; }
foo() : n(0) {}
operator float() { return 4.5f; }
operator int() { return 3; }
private:
int n;
};
void main()
{
int y = foo();
float z = foo();
cout<<y<<" "<<z<<endl;
system("pause");
}
Kommentare zum Snippet