我有一个情况,我想声明一个类成员函数,返回一个依赖于类本身的类型。让我给你举个例子:

class Substring {
    private:
        string the_substring_;
    public:
        // (...)
        static SubstringTree getAllSubstring(string main_string, int min_size);
};

而 SubstringTree 定义如下:
typedef set<Substring, Substring::Comparator> SubstringTree;

我的问题是,如果我把 SubstringTree 定义放在 Substring 定义之后,静态方法说它不知道 SubstringTree。如果我反转声明,那么 typedef 会说它不知道 Substring。

我该怎么做?提前致谢。

最佳答案

您可以在类中定义它:

class Substring {
    private:
        string the_substring_;
    public:
        // (...)
        typedef set<Substring, Substring::Comparator> SubstringTree;
        static SubstringTree getAllSubstring(string main_string, int min_size);
};

关于c++ - 在 C++ 中转发 "Pre-declaring"一个类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1098752/

10-12 18:54