c++全局变量引用

conststd::stringname[3]={"yihai","zhonghuang","yiyi"};这个变量为全局变量,怎么用extern引用... const std::string name[3]={"yi hai","zhonghuang","yiyi"};
这个变量为全局变量,怎么用extern引用
展开
 我来答
花花浪客
2013-10-17 · TA获得超过2069个赞
知道小有建树答主
回答量:792
采纳率:100%
帮助的人:711万
展开全部
你的这句话
const std::string name[3]={"yi hai","zhonghuang","yiyi"};
需要放到一个.cpp文件中。
在其他需要使用这个变量的cpp文件里面,添加:
extern std::string name[];的声明就好了。(也可以把这个声明放到一个.h文件里面,然后再需要用到的.cpp文件里面包含这个.h)
追问
我写成
extern std::string *name;

void test()
{
for(int i=0;itest1.obj : error LNK2001: 无法解析的外部符号 "class std::basic_string<char,struct
追答
额,这是因为const的问题,const默认是只有本cpp才能访问。你把const去掉就好了。
如果你一定要const的话,那么在定义的地方写作:
extern const std::string name[3]={"yi hai","zhonghuang","yiyi"};
声明的地方写作:
extern const std::string name[3];
这样也ok
df601562566
2013-10-17 · TA获得超过502个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:340万
展开全部
你的const std::string name[3]={"yi hai","zhonghuang","yiyi"};
是常量,要用着全局常量就直接使用,不用extern。

如果是全局变量,那么在a.h中用extern + 类型 + 变量名 声明,
在a.cc中定义, 类型 + 变量名。
在其他文件比如b.cc中,只要包含a.h就可以使用这个全局变量。
追问
std::string name[3]={"yi hai","zhonghuang","yiyi"};

那你就当是这样的变量吧,extern怎么写
我写成extern std::string name;
结果程序出错
追答

比如:b.h 声明全局变量:

#include <string>
extern std::string name[3];

b.cc 全局变量定义:

#include "b.h"
std::string name[3]={"yi hai","zhonghuang","yiyi"};

a.cc 包含头文件,使用全局变量:

#include "b.h"
#include <stdio.h>
int main()
{
 printf("%s\n",name[0].c_str());
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式