namespace解决c++ .h中定义数据时的重命名问题

情形如下:

做项目或者写程序时我们不想把函数、变量等封装到类中,就想把它们直接声明成光杆数据。

A.h
void show();

B.h
void show();

C.h
#include"A.h"
#include"B.h"


上述情况会出现编译时错误: 函数show重定义


解决办法:

将函数放到命名空间里去,代码示例是这样的

A.h
namespace
{
    void show();
}

B.h
namespace
{
    void show();
}

C.h
#include"A.h"
#include"B.h"

void test()
{
    A::show();
    B::show();
}
如有问题还请指正。谢谢。


猜你喜欢

转载自blog.csdn.net/csdn_zhishui/article/details/79333979