我对 C++ 很陌生。实际上,我正在将我的代码从 c# 转换为 c++。我的代码的问题是我得到了某个类变量的默认值,即使我已经将它设置为其他值。部分代码如下。请帮忙。节点和单元格是类。
node nodes [10];
cell cells [10][10];
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
cell c1;
cells[i][j] = c1;
}
// mapping nodes to cells
for (i = 0; i < N; i++)
{
nodes[i] = node(i);
// depending upon some x and y, nodes are assigned to appropriate cells.
cellNodeCount = cells[x][y].appendNode(nodes[i]);
}
现在在同一类中的稍后代码中,我正在更新节点的标志。
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
cellNodeList = cells[i][j].getNodeList();
//for some p
cellNodeList[p].setNodeFlag(true);
}
稍后,当我尝试访问节点标志时,我总是得到 false 即 0,即使该节点的标志设置为 true。
节点类如下
class node
{
private:
int nodeID;
bool Flag;
public:
node(void){}
...
void setNodeFlag(bool nodeFlag)
{
Flag = nodeFlag;
}
bool getNodeFlag()
{
return Flag;
}
};
这是包含getNodeList()
函数的单元类。
class cell
{
private:
vector<node> nodeList;
public:
int appendNode(node nod)
{
nodeList.push_back(nod);
return nodeList.size();
}
vector<node> getNodeList()
{
return nodeList;
}
int cellNodeCount()
{
return nodeList.size();
}
};