静态函数帮助C++

Ale*_*lex 20 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
}
Run Code Online (Sandbox Code Playgroud)

我得到错误,其中抱怨function2是私有的.如果我把它公开(我真的不想这样做),我会得到关于对function2的未定义引用的错误.我究竟做错了什么?谢谢!

Sam*_*eer 36

  1. 您不能在类中拥有函数声明和定义.将定义移出类或删除声明.

  2. 您不能使用void作为参数调用函数.这只在声明中使用.

  3. 如果在类之外需要ax :: qualifier和static,则第二次不需要function2的函数定义.


    class x
    {
        public:
            void function(void); 
        private:
            static void function2(void);
    };

    void x::function(void)
    { 
        x::function2(); 
    }

    void x::function2(void)
    {
    }
Run Code Online (Sandbox Code Playgroud)