Search code examples
c++static-functions

Static Function Help C++


I can't get past this issue I am having. Here's a simple example:

class x
{
    public:
    void function(void);

    private:
    static void function2(void);
};

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

static void function2(void)
{
     //something
}

I get errors in which complain about function2 being private. If I make it public (which I don't really want to do) I get errors about an undefined reference to function2. What am I doing wrong? Thank you!


Solution

    1. You can't have a function declaration and definition both in a class. Either move the definitions out of the class or remove the declarations.

    2. You can't call a function with a void as a parameter. That is used only in the declaration.

    3. The function definition for function2 if outside the class will need a x:: qualifier and static is not needed the second time.

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