【发布时间】:2014-11-30 07:10:06
【问题描述】:
我已将程序的问题缩小到我的 North - West 节点的 get 方法。
程序的总体目的是从输入文件创建迷宫游戏并分配东北南和西。我相信程序的所有其他功能都是正确的我只是不确定我在四个 get 方法中哪里出错了。
set 方法确实按预期工作,我已经包含了它们以及构造函数以显示节点是如何被初始化的。
另外,我已经验证文件被正确解析了。
Node::Node(char e){
Name = e;
North = NULL;
East = NULL;
South = NULL;
West = NULL;
}
Node Node::get_North(){
return *North;
}
Node Node::get_East(){
return *East;
}
Node Node::get_South(){
return *South;
}
Node Node::get_West(){
return *West;
}
void Node::set_North(Node *n){
//cout << "inside set_North\n";
North = n;
}
void Node::set_East(Node *e){
//cout << "inside set_East\n";
East = e;
}
void Node::set_South(Node *s){
//cout << "inside set_South\n";
South = s;
}
void Node::set_West(Node *w){
//cout << "inside set_West\n";
West = w;
}
我们将不胜感激任何发现错误的帮助。
【问题讨论】:
-
您真的要返回
Nodes 而不是Node *s?你知道这会复制节点吗? -
您的代码错误。两种可能的解决方案:1)将签名从“Node”更改为
*Node(如您所愿返回指针),或2)使用引用“&”。这是一个很好的教程:cprogramming.com/tutorial/references.html -
旁白:如果你有一个 setFoo 和一个 getFoo 函数,你的设计就会自动被怀疑。
标签: c++ list file pointers text