调用extern函数而不指定命名空间

时间:2016-11-22 03:25:06

标签: c++ namespaces extern

代码编译没有错误,我想知道在命名空间内和没有命名空间的不同声明extern函数是什么?

- A.H -

namespace mynamespace {
    extern void foo();
}

- 交流转换器 -

namespace mynamespace {
    void foo(){
        dosomething;
    };
}

在没有调用foo()时我是否应该担心 指定命名空间

#include "a.h"
int main(int argc char *argv )
    foo()
}

而不是

#include "a.h"
int main(int argc char *argv )
    mynamespace::foo();
}

1 个答案:

答案 0 :(得分:0)

事实证明using namespace mynamespace;已在其他头文件中声明。因此,如果一个文件包含已定义using namespace mynamespace;的头文件,则当前头文件也会受到影响。