Sign in to follow this  
sipickles

[c++] overloading operator ()

Recommended Posts

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

Share this post


Link to post
Share on other sites
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.
}


Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this