【发布时间】:2011-10-31 07:14:25
【问题描述】:
我仍在学习 C++ 模板,并且遇到了关于使用以下方法从专门的静态函数调用成员的问题。 GCC 抱怨:“在静态成员函数中无效使用成员 C::value。” 我已经搜索了这个论坛和其他一些论坛,甚至我的朋友 Google 也无法帮助我。我认为错误必须是我忽略的东西,因为我制作了该类的非专业版本(具有相同的静态成员函数),但我仍然得到相同的错误。有什么想法吗?
template <typename T = const char*>
class C { };
//specialization for const char*
template <>
class C <const char*> {
public:
C() { }
static void echo(int x);
private:
int value;
};
//error occurs here
void C<const char*>::echo(int x) {
value = x;
}
非常感谢您提供的任何见解。
【问题讨论】:
标签: c++ static-members