向量大小在构造函数外部恢复为 0
vector size reverts to 0 outside constructor
>我有一个类[网络],它在构造过程中创建对象的向量[节点]
在构造函数内部,我有声明
vector<Node> Nodes (NodeCount);
其中 NodeCount 是一个整数,假设 5
在我可以调用的构造函数内部
cout << Nodes.size()
输出将为 5
这是构造函数
Network::Network()
//establish initial Node count for network
/*
cout << "How many Nodes: ";
cin >> NodeCount;
*/
NodeCount = 5;
vector<Node> Nodes (NodeCount);
cout << "Nodes.size(): " << Nodes.size() << endl;
//initialize tables for all Nodes
for(int i = 0; i < Nodes.size(); i++)
{
Nodes[i].initTable(i, NodeCount);
//cout << "Nodes[" << i << "].table[0] - " << Nodes[i].table[0] << endl;
debug();
- 请原谅我试图调试的评论
但是在构造函数之外,如果我在说这个函数
void Network::debug()
cout << "NodeCount: " << NodeCount << endl;
cout << "Nodes.size(): " << getSize() << endl;
这是输出
NodeCount: 5
Nodes.size(): 0
我一辈子都想不通为什么会这样
似乎在构造函数中您定义了局部变量
vector<Node> Nodes (NodeCount);
退出后构造函数被销毁。
您必须使用类的相应数据成员,而不是此局部变量。
相关文章:
- 在函数内部的声明中初始化数组,并在外部使用它
- 用C++将哈希表写入文件并从文件中恢复
- 使外部项目可用于find_package CMake
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- C++:来自外部文件的Trivia
- 从函数角度看ID到文件路径的内部与外部映射
- C++:将外部库链接到dll库
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 节俭并发:未解决的外部问题
- 如何在c++中从git建立外部库
- 未解析的外部符号_MsiLocateComponentW@12.
- 如何使用对C函数和类对象的外部调用来处理C++头文件
- 具有外部"c"和程序集的未定义函数
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 在C++中使用 gRPC 时未解析的外部符号
- 在类函数中初始化外部作用域变量
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- Opencv 恢复到比我设置的更高的分辨率
- 向量大小在构造函数外部恢复为 0