C++ 静态函数帮助C++;
我无法克服这个问题。下面是一个简单的例子:C++ 静态函数帮助C++;,c++,static-functions,C++,Static Functions,我无法克服这个问题。下面是一个简单的例子: class x { public: void function(void); private: static void function2(void); }; void x::function(void) { x::function2(void); } static void function2(void) { //something } 我收到一些错误,抱怨函数2是私有的。如果我将其公开(我真
class x
{
public:
void function(void);
private:
static void function2(void);
};
void x::function(void)
{
x::function2(void);
}
static void function2(void)
{
//something
}
我收到一些错误,抱怨函数2是私有的。如果我将其公开(我真的不想这样做),我会收到关于未定义的对function2的引用的错误。我做错了什么?谢谢大家! 您必须使用
static void x::function2 (void)
{
body
}
与x::function
更新:
对在定义类方法时,不需要将其标记为static
class x
{
public:
void function(void);
private:
static void function2(void);
}; //end of class
// here are definitions of members
static void x::function(void)
{
x::function2();
}
static void x::function2(void)
{
//something
}
为什么function2使用完全相同的签名重载?这给了我一个错误:无法声明成员函数具有静态链接。我在其他地方出错了吗?在g++-v4.7下,似乎在实现函数时必须省略关键字“static”。这是因为我第二次使用static。我的例子不好,但非常感谢。
class x
{
public:
void function(void);
private:
static void function2(void);
};
void x::function(void)
{
x::function2();
}
void x::function2(void)
{
}