36 lines
730 B
C++
36 lines
730 B
C++
/**
|
|
* @file using_global.cpp
|
|
* @brief using各种使用
|
|
* @author 光城
|
|
* @version v1
|
|
* @date 2019-08-07
|
|
*/
|
|
|
|
#include <iostream>
|
|
#define isNs1 1
|
|
// #define isGlobal 2
|
|
using namespace std;
|
|
void func() { cout << "::func" << endl; }
|
|
|
|
namespace ns1 {
|
|
void func() { cout << "ns1::func" << endl; }
|
|
} // namespace ns1
|
|
|
|
namespace ns2 {
|
|
#ifdef isNs1
|
|
using ns1::func; /// ns1中的函数
|
|
#elif isGlobal
|
|
using ::func; /// 全局中的函数
|
|
#else
|
|
void func() { cout << "other::func" << endl; }
|
|
#endif
|
|
} // namespace ns2
|
|
|
|
int main() {
|
|
/**
|
|
* 这就是为什么在c++中使用了cmath而不是math.h头文件
|
|
*/
|
|
ns2::func(); // 会根据当前环境定义宏的不同来调用不同命名空间下的func()函数
|
|
return 0;
|
|
}
|