看例子
#include "ros/ros.h"
int ff=0;
namespace first_space{
int ff=1;
::ff = 10;
std::cout<<"show ff="<<::ff<<std::endl;
}
int main ()
{
first_space::show_ff();
ROS_INFO("hour=%d",ff);
ff=3;
ROS_INFO("hour=%d",ff);
return 0;
}
error: ‘ff’ in namespace ‘::’ does not name a type ::ff = 10;
原因是只能在函数体内复制(很容易忽略这一点造成不知道那里出错,一个简单的例子帮你理解呦!!!)
修改如下:
#include "ros/ros.h"
using namespace std;
int ff=0;
namespace first_space{
int ff=1;
void show_ff()
{
::ff = 10;
std::cout<<"show ff="<<::ff<<std::endl;
}
}
int main ()
{
first_space::show_ff();
ROS_INFO("hour=%d",ff);
ff=3;
ROS_INFO("hour=%d",ff);
return 0;
}
运行结果:
show ff=10
[ INFO] [1524025067.512334179]: hour=10
[ INFO] [1524025067.512383855]: hour=3