c++全局变量引用
conststd::stringname[3]={"yihai","zhonghuang","yiyi"};这个变量为全局变量,怎么用extern引用...
const std::string name[3]={"yi hai","zhonghuang","yiyi"};
这个变量为全局变量,怎么用extern引用 展开
这个变量为全局变量,怎么用extern引用 展开
2个回答
展开全部
你的这句话
const std::string name[3]={"yi hai","zhonghuang","yiyi"};
需要放到一个.cpp文件中。
在其他需要使用这个变量的cpp文件里面,添加:
extern std::string name[];的声明就好了。(也可以把这个声明放到一个.h文件里面,然后再需要用到的.cpp文件里面包含这个.h)
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
展开全部
你的const std::string name[3]={"yi hai","zhonghuang","yiyi"};
是常量,要用着全局常量就直接使用,不用extern。
如果是全局变量,那么在a.h中用extern + 类型 + 变量名 声明,
在a.cc中定义, 类型 + 变量名。
在其他文件比如b.cc中,只要包含a.h就可以使用这个全局变量。
是常量,要用着全局常量就直接使用,不用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());
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询