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

时间:2012-07-31 22:44:01

标签: 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

代码:

标题

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 );
    };
};

来源:

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

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分: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!
    {
    ....
    }
}