我发现了一堆关于“从这里实例化”问题的线程。他们似乎都是忘记了默认构造函数的人。我认为我的问题是不同的(但是我是 C++ 新手,它可能对同一个问题略有不同,我只是不知道如何实现解决方案)。
我正在尝试插入一个集合,显然它正在从那里实例化。它正在引发错误。
class Node{
public:
bool operator <(const Node& other){
return id < other.id;
}
class Graph {
public:
int poner;
map<string, Node> nodeMap;
set<Node> reachables;
void DepthFirstSearch(Node node){
reachables.clear(); //fine at this point
poner = 0;
DFS(node);
}
private:
void DFS(Node node){
reachables.insert(node); //instantiated from here
}
};
Node.h:131:25: instantiated from here
c:\..... errir: passing 'const Node' as 'this' argument of 'bool Node::operator<(const Node&)' discards qualifiers [-fpermissive]
任何帮助总是受到赞赏。