.h
class MonotonePieces
{
...
private:
class CompEdges;
set<int, CompEdges> _edgesCrossingLine;
};
.cpp
class MonotonePieces::CompEdges
{
...
};
MonotonePieces::MonotonePieces(const vector<Vector2>& vertices) :
_edgesCrossingLine((CompEdges(_vertices, &this->_sweepingLinePosition))),
{}
有了这个我得到错误:
'MonotonePieces::CompEdges' : an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_empty'
类的用法是:
MonotonePieces mp(poly);
最佳答案
定义std::set<int, CompEdges> _edgesCrossingLine
需要知道 CompEdges
的大小要完整。所以你必须定义 CompEdges
在此行之前。但是,您仍然可以自由放置 CompEdges
的实现。 .cpp 文件中的方法。
关于c++ - 在 .h 中提及时在 .cpp 中定义私有(private)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31283029/