+ -
当前位置:首页 → 问答吧 → vector 作为静态变量 的问题

vector 作为静态变量 的问题

时间:2010-04-10

来源:互联网

我在a.h里面有一个类:
//a.h
class A{
public:
 static vector<double> array;
}

// 需要在类外初始化,如果是int的static变量,那写int A::parameter=0;就好了,可是vector怎么写呢?
vector<double> A:array;

如果我是这么写的,如果a.h只被main.cpp引用,没有问题,如果有多个h文件include就说什么什么重定义了。怎么办呢?

作者: qiushichen   发布时间: 2010-04-10

对头文件用头文件卫士
#ifndef A_H_
#define A_H_
#endif

作者: lovesi3344   发布时间: 2010-04-10

在a.h加上#pragma once

作者: s79947171   发布时间: 2010-04-10

引用 1 楼 lovesi3344 的回复:

对头文件用头文件卫士
#ifndef A_H_
#define A_H_
#endif


我加了!

作者: qiushichen   发布时间: 2010-04-10

好像我在项目-》属性-》连接器-》命令行里面加了 \force就好了?!

作者: qiushichen   发布时间: 2010-04-10

在一个文件中定义
然后在其他文件中要使用的时候,
必须extern vector<double> A:array;
或者static vector<double> A:array;

作者: lovesi3344   发布时间: 2010-04-10

在.cpp里面定义不可以吗?

作者: pengzhixi   发布时间: 2010-04-10

...要写在cpp文件里的~你放头文件里被多个文件包含,当然重定义了~

作者: liurenjie2008   发布时间: 2010-04-10

恩 将vector<double> A:array;放在你a.cpp的文件中就可以了 

作者: n567656756765676567   发布时间: 2011-12-11