我有一个情况,我想声明一个类成员函数,返回一个依赖于类本身的类型。让我给你举个例子:
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/