·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':不允许使用未定义的类作为 编译器内在类型特征'__is_empty'
的参数
课程用法是:
MonotonePieces mp(poly);
答案 0 :(得分:3)
定义std::set<int, CompEdges> _edgesCrossingLine
需要知道要完成CompEdges
的大小。因此,您必须在此行之前定义CompEdges
。但是,您仍然可以将CompEdges
方法的实现放在.cpp文件中。