读书人

定义变量时有一个奇怪的报错!无语。

发布时间: 2012-06-03 16:59:40 作者: rapoo

定义变量时,有一个奇怪的报错!无语。。。。请高手指教!
听我慢慢道来:
从前有个rti.h文件里面定义了一个这个变量:
namespace RTI
{
typedef ::IceInternal::ProxyHandle<::IceProxy::IRTI13::RtiAmb> RtiAmbPrx;
}
然后,有一个叫Global.h的文件,里面要定义一个这样的变量,于是:
#include "rti.h"
using namespace RTI;
RtiAmbPrx _serverfm;//我定义了变量
交给编译器审核的时候,不分青红皂白就给了个:
error C2146: 语法错误 : 缺少“;”(在标识符“_serverfm”的前面)
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int


冤啊!!!

请大家帮忙,看看是怎么回事!!非常感谢!

[解决办法]
rti.h里的:

namespace RTI
{
typedef ::IceInternal::ProxyHandle<::IceProxy::IRTI13::RtiAmb> RtiAmbPrx;
}

之前是否可见IceInternal类的定义,见不到是不行的。
[解决办法]
typedef ::IceInternal::ProxyHandle<::IceProxy::IRTI13::RtiAmb> RtiAmbPrx;前面的域引用符是不是可以去掉?
[解决办法]
全局变量的定义一般放在.cpp里,.h文件加extern声明。

.h文件
extern RtiAmbPrx _serverfm;
.cpp文件:
RtiAmbPrx _serverfm;

读书人网 >C++

热点推荐