名字空间的性质和用法.txt
来自「里面的代码是自己写的,参考书是thingking in c++,代码有详细的说明」· 文本 代码 · 共 57 行
TXT
57 行
/*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 + =
减小字号Ctrl + -
显示快捷键?