⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 名字空间的性质和用法.txt

📁 里面的代码是自己写的,参考书是thingking in c++,代码有详细的说明,对学习c++语法非常有帮助!
💻 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 + -