【发布时间】:2015-05-08 03:15:59
【问题描述】:
我尝试在以下程序中使用模板进行函数调用运算符重载:
#include <stdio.h>
struct Apple
{
template <typename tn> tn value ();
template <typename tn> tn operator () ();
};
template <> int Apple::value ()
{
return 10;
}
template <> int Apple::operator () ()
{
return 10;
}
int main()
{
Apple apple;
printf("Value : %d\n", apple<int>());
printf("Value : %d\n", apple.value<int>());
return 0;
}
虽然第二次打印中的值函数调用没有显示任何错误,但第一次打印中的函数调用运算符显示expected primary-expression 错误。我不知道我做错了什么。谁能帮我知道问题提前谢谢。
【问题讨论】:
标签: c++ templates operator-overloading