为什么识别不了c++命名空间中的变量?

Data,h中这样写:#pragmaonce#include<glut.h>namespaceGunBarrelData{//声明全局变量externGLintface_... Data,h中这样写:
#pragma once
#include <glut.h>
namespace GunBarrelData{
//声明全局变量
extern GLint face_indicies[120][6];
extern GLfloat vertices [174][3];
extern GLfloat normals [360][3];
}
Data.cpp中这样写:
#include "Data.h"
================写法1正确,达到预想效果===================
GLint GunBarrelData::face_indicies[120][6] = {……}
GLint GunBarrelData::vertices [174][3] = {……}
GLint GunBarrelData::normals [360][3] = {……}
================写法2错误,报错“无法解析的外部函数”===================
using namespace GunBarrelData;//去掉所有GunBarrelData::,改为using namespace
GLint face_indicies[120][6] = {……}
GLint vertices [174][3] = {……}
GLint normals [360][3] = {……}

为什么写法2和写法1不等价?
展开
 我来答
百度网友6c954cb
2014-05-17 · TA获得超过298个赞
知道小有建树答主
回答量:478
采纳率:100%
帮助的人:524万
展开全部
无法解析的外部函数,而你说的差别在全局数组,你错误的原始报告帖出来
追问
就是那个意思吧……别纠结是函数还是变量了。总之就是“无法解析的外部**”
追答
namespace GunBarrelData{
//声明全局变量
extern GLint face_indicies[120][6];
extern GLfloat vertices [174][3];
extern GLfloat normals [360][3];
}
如果不加extern
我测试的结果是没问题,你可以自己建个小工程对这两项测试下,等价的,你的应该是namespace中用的外部引用对于使用using 模式是没用的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式