Feedback

C++ - Überladener Rückgabetyp

Veröffentlicht von am 28.05.2008
(1 Bewertungen)
Ü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");
}
Abgelegt unter Funktionsobjekt, Rückgabetyp.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!