[c++] overloading operator ()
Hi,
Can anyone tell me if it is possible to overload the call method ()? Heres what I tried:
class MyDXDevice
{
public:
IDirect3DDevice9* operator()(void) { return m_device; }
private:
IDirect3DDevice9* m_device;
};
but using MyDXDevice() causes:
error C2064: term does not evaluate to a function taking 0 arguments
Thanks all!
Simon
Calling MyDXDevice() calls the constructor, not operator(). See example:
#include <iostream>using namespace std;class test{public: int operator()() {return 5;};};int main(){ test t; cout << t() << endl; //works fine. Outputs 5. cout << test() << endl; //ERROR! Attempting to call the constructor, which does not return a type for which operator<< is defined.}
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement