类之外的静态函数声明不是定义

ssk*_*ssk 2 c++ static

我在使用GCC编译时收到此错误:

error: declaration of 'static int utils::StringUtils::SplitString(const std::string&, const std::string&, std::vector<std::basic_string<char> >&, bool)' outside of class is not definition
Run Code Online (Sandbox Code Playgroud)

码:

标题:

namespace utils
{
    /*
    *   This class provides static String utilities based on STL library.
    */
    class StringUtils
    {
    public:
        /**
        *   Splits the string based on the given delimiter.
        *   Reference: http://www.codeproject.com/Articles/1114/STL-Split-String
        */
        static int SplitString( const std::string&              input, 
                                const std::string&              delimiter,
                                std::vector<std::string>&       results, 
                                bool includeEmpties =           true );
    };
};
Run Code Online (Sandbox Code Playgroud)

资源:

namespace utils
{
    int StringUtils::SplitString(   const std::string&          input, 
                                    const std::string&          delimiter,
                                    std::vector<std::string>&   results, 
                                    bool                        includeEmpties );
    {
    ....
    }
}
Run Code Online (Sandbox Code Playgroud)

pad*_*ddy 7

从源文件中的定义末尾取分号!复制粘贴错误=)


Eri*_*ric 5

我相信你需要在你的源文件中丢失那个分号.应该:

namespace utils
{
    int StringUtils::SplitString(   const std::string&          input, 
                                    const std::string&          delimiter,
                                    std::vector<std::string>&   results, 
                                    bool                        includeEmpties ) // <--- No more semi-colon!
    {
    ....
    }
}
Run Code Online (Sandbox Code Playgroud)