📄 名字空间的性质和用法.txt
字号:
/*main.cpp 本程序位于thinking in c++ P415
*这个程序在于说明:
1.名字空间可以跨越文件定义。书上说:
* A namespace definition can be "continued" over mutiple header files.
2.using directive 的用法和引起的结果 见P420 打括号的那一句.
*/
#include "haha1.h"
#include "haha2.h"
using std::cout;
using std::endl;
void h( int a) //Mylib中也有函数h()
{
cout << "::h( int a )"<< endl;
}
void function()
{
using namespace Mylib; //Mylib 的所有成员在function()内可见。
y = 10; //Mylib::y
h(); //Mylib::h()
h( 10 ); //调用了::h(int 10),说明通过using director重载了Mylib::h()
int y=11; //Hides (或则说 overrides) Mylib::y
cout << y << endl; //输出11;
}
void main()
{
function();
Mylib::y = 100;
}
//haha1.h
#ifndef HAHA1_H //注意这里的千万不要写成#ifdef,我找了半天才发现这个“小错误”
#define HAHA1_H
#include <iostream>
namespace Mylib{ //继续定义Mylib,已经在header1.h中定义
using std::cout;
using std::endl;
extern int y;
void h() { cout << "Mylib::h()" << endl;y=10;}
}
#endif
//haha2.h
#ifndef HAHA2_H
#define HAHA2_H
namespace Mylib{ //继续定义Mylib,已经在header1.h中定义过
int y;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -