To add a little explanation to the correct answer by Nemanja Trifunovic:
Mention in the compiler error message "call of nonfunction" does not mean a call of non-function really exists but somehow exists. There is no such thing. In C++, all you can call is always a function. The error message simple means "this is gibberish" but a compiler sees a call-like syntax (just because of "()" ) and suggests that a programmer really meant to make a call but have accidentally written a wrong identifier — of something non-callable.
For a record, you can also use the call-like syntax if you override a call operator "()" in your class, but this is a call of the function anyway. See, for example:
http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fcplr327.htm[
^].
—SA