Vector中作为全局变量时注意的问题(转)
2007-03-05 16:57
357 查看
[align=left] Vector中作为全局变量时注意的问题[/align]
案例:两个文件:
//Class.h====================================================
#ifndef CLASS_H
#define CLASS_H
#include <vector>
class Node;
class Node
{
public:
void Register()
{
Node::nodeCollection.push_back(this);
}
public:
static std::vector<Node*> nodeCollection;
};
#endif
//main.cpp =====================================================
#include "Class.h"
#include <iostream>
using namespace std;
答案:即此处添加 std::vector<Node*> Node::nodeCollection;
int main()
{
Node aNode;
Node* pNodeA = new Node();
pNodeA->Register();
Node* pNodeB = new Node();
pNodeB->Register();
for (int i = 0; i < Node::nodeCollection.size(); i++)
{
if (Node::nodeCollection[i] != NULL)
{
delete Node::nodeCollection[i];
Node::nodeCollection[i] = NULL;
}
}
cout << "done!" << endl;
cin.ignore();
return 1;
}
//======================================================================
编译时出错,会提示error LNK2001unresolved external symbol****
正确回答:
在int main()之前加一句;
std::vector<Node*> Node::nodeCollection;
转自http://dev.cbw.com/c/c++/20055245604_4006740.shtml
相关文章推荐
- 关于指针作为函数参数传递的理解,对比普通变量作为函数参数的需注意点,其实就是行参和实参的问题。
- 有关QT中声明一个vector为全局变量的初始化问题
- 头文件中定义 const 全局变量应注意的问题
- j2ee高并发时使用全局变量需要注意的问题
- C++ 全局变量作为实参之传递问题
- vector<Mat>作为类成员变量,初始化问题
- 头文件中定义 const 全局变量应注意的问题
- 头文件中定义 const 全局变量应注意的问题
- JS中全局变量作为函数实参传入的问题
- 用vs编译动态库需要注意的问题,全局变量初始化
- VS2008编译环境下全局const变量在其他编译模块中引用注意的问题
- c++引用全局变量应注意的问题
- 头文件中定义const全局变量应注意的问题
- DLL中导出全局变量的方法及导入时需要注意的问题
- 头文件中定义const全局变量应注意的问题
- const 全局变量应注意的问题
- iOS block中的全局变量释放问题
- vector作为参数传递到dll问题
- 遇到的问题-----------定义一个全局变量,在page_load里赋值,但在其他按钮中调用仍为空
- static lib中全局变量初始化问题