C++命名空间

-------siwuxie095

C++命名空间(namespace)

什么是命名空间:

简言之,就是为程序划片取名字

程序中的命名空间:

如:A 公司的程序库 与 B 公司的程序库(二者毫无联系),

都将卖给 C 公司

如果 C 软件公司购买了 A 公司和 B 公司的程序库,想使用

A 公司的变量 x 和 B 公司的函数 f1,怎么办?

〔 C 公司怎么办,A 公司和 B 公司如何写自己的代码,

所以 A 公司和 B 公司要使用命名空间 〕

(即
为什么要有命名空间)

解决方案:

使用命名空间
namespace

命名空间定义方法:

命名空间使用方法:

如:


#include<stdlib.h>

#include <iostream>

using namespace std;

namespace A

{

int x = 1;

void fun()

{

cout << "A" << endl;

}

}

namespace B

{

int x = 2;

void fun()

{

cout << "B" << endl;

}

void fun2()

{

cout << "2B" << endl;

}

}

using namespace B;

int main(void)

{

cout << A::x << endl;

B::fun();

fun2();

system("pause");

return
0;

}

//或者去掉 using namespace B; 与上面等价

//int main(void)

//{

// cout << A::x << endl;

// B::fun();

// B::fun2();

// system("pause");

// return 0;

//}

vs2013中:

或者:


//或者去掉 using namespace std; 与上面整体等价

#include
"stdlib.h"

#include <iostream>

namespace A

{

int x = 1;

void fun()

{

std::cout << "A" << std::endl;

}

}

namespace B

{

int x = 2;

void fun()

{

std::cout << "B" << std::endl;

}

void fun2()

{

std::cout << "2B" << std::endl;

}

}

using namespace B;

int main(void)

{

std::cout << A::x << std::endl;

B::fun();

fun2();

system("pause");

return
0;

}

vs2013中:

再如:


#include<stdlib.h>

#include <iostream>

using namespace std;

namespace myNum //填写命名空间的关键字

{

int x = 105;

}

int main()

{

// 使用bool类型定义isOdd,作为状态位

bool isFlag = false;

if (myNum::x % 2 == 0)

{

//改变状态位的值,使其为false

isFlag = false;

}

else

{

//改变状态位的值,使其为true

isFlag = true;

}

// 判断状态位的值

if (isFlag)

{

// 如果状态位的值为true,则打印变量x是奇数

cout << myNum::x << "是奇数" << endl;

}

else

{

// 如果状态位的值为false,则打印变量x是偶数

cout << myNum::x << "是偶数" << endl;

}

system("pause");

return
0;

}

vs2013中:

【made by siwuxie095】

时间: 2024-10-03 22:40:11

C++命名空间的相关文章

命名空间

1.命名空间,即将代码划分成不同空间,不同空间的类名相互独立,互不冲突.一个php文件中可以存在多个命名空间,第一个命名空间前不能有任何代码.内容空间声明后的代码便属于这个命名空间,例如: <?php echo 111; //由于namespace前有代码而报错 namespace Teacher; class Person{ function __construct(){ echo 'Please study!'; } } 2.调用不同空间内类或方法需写明命名空间.例如: <?php nam

PHP命名空间

命名空间 namespace命名空间 1. 什么是命名空间 在php程序语言里边,语法规则要求同名称的函数.类名.常量在一个请求里边不允许出现多次.如果有的应用程序(例如tp框架中有smarty.视频方法插件,他们有同名称的多个元素)不得已必须出现多个同名的 函数.类名.常量,那么我们就可以把它们放到不同的空间里边做请求.这个不同的空间就称作“命名空间”. 2. 使用命名空间 通过namespace关键字声明命名空间. namespace  空间名称; (空间名称 按照php正确的命名方式定义即

五:理解控件的运行机制(例:基于Control命名空间的简单控件)

一:先用最简短的话说点理论的1.asp.net中所有的标准控件都可以重写 2.和控件相关的命名空间有 System.Web.UI.Control是所有控件的基类只提供简单的呈现逻辑,不支持样式表 System.Web.UI.WebControls.WebControl继承自Control支持控件外观 System.Web.UI.WebControls.CompositeControl继承自WebControl类派生出多个控件合成的复合控件 3.控件树的实现原理首先Page类本身就是一个控件,它继

PHP命名空间规则解析及高级功能

日前发布的PHP 5.3中,最重要的一个新特性就是命名空间的加入.本文介绍了PHP命名空间的一些术语,其解析规则,以及一些高级功能的应用,希望能够帮助读者在项目中真正使用命名空间. 在这里中我们介绍了PHP命名空间的用途和namespace关键字,在这篇文章中我们将介绍一下use命令的使用以及PHP如何解析命名空间的名字的. 为了便于对比,我定义了两个几乎一样的代码块,只有命名空间的名字不同. < ?php // application library 1 namespace App\Lib1;

spring命名空间p装配属性

使用<property>元素为bean的属性装备值和引用并不太复杂.尽管如此,spring的命名空间p提供了另一种bean属性的装配方式. 命名空间p的schema url是:http://www.springframework.org/schema/p 直接看例子(还是角色跟用户的model): public class Roles { private int id; private String roleName; private Users users; //省略set get方法 //

JS命名空间模式解析

简介 在SF上看到这样一个提问: 如题,因为不得已的原因,需要写若干个全局函数.但又不想这样: window.a = function(){} window.b = function(){} window.c = function(){} 题主问有什么好的写法? 解答: 如果你用 jQuery,你可以这样写 $.extend(window, { a: function() {}, b: function() {}, c: function() {} }); 如果你不用 jQuery,可以直接实现

Django中url使用命名空间的错误

出的错误: 1. Reverse for 'llist' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 2. Reverse for 'home' with arguments '(1L,)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'org/home/?P<org_id>(/d+)/$'] 出错原因

python开发函数进阶:命名空间,作用域,函数的本质,闭包,内置方法(globales)

一,命名空间 #局部命名空间#全局命名空间#内置命名空间 #三者的顺序#加载顺序 硬盘上--内存里#内置-->全局(从上到下顺序加载进来的)-->局部(调用的时候加载) 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #全局命名空间 5 a = 5 6 b = 8 7 #局部命名空间(函数) 8 def my_max(): 9 c = a if a > b else b 10 return c 11 m = my_max() 12 pr

C#中的程序集和命名空间

C#中的程序集和命名空间 如果说命名空间是类库的逻辑组织形式,那么程序集就是类库的物理组织形式.只有同时指定类型所在的命名空间及实现该类型的程序集,才能完全限定该类型.<精通.NET核心技术--原理与架构> 程序集和命名空间不存在必然联系,一个程序集可以包含多个命名空间,同一个命名空间也可以分放在几个程序集. 程序集是应用程序的部署单元..NET应用程序包含一个或多个程序集.通常扩展名是EXE或DLL 的.NET可执行程序称为程序集..NET程序集包含元数据,这些元数据描述了程序集中定义的所有

面向对象(一)封装 命名空间 访问修饰符等

一.封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员. 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部借口,以特定的访问权限来使用类的成员. public class 类名 { //成员变量 private 数据类型 _属性名; //属性 public 数据类型 属