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

📄 标准名字空间的理解 - 交大蓝盾 blog - powered by phpwind_net.htm

📁 关于C+编程思想的课件
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0063)http://www.ecjtu.org/blog/article.php?itemid-447-type-blog.html -->
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind.net</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK 
href="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/style.css" 
type=text/css rel=stylesheet><LINK 
href="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/q.css" type=text/css 
rel=stylesheet>
<SCRIPT language=JavaScript 
src="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/global.js"></SCRIPT>

<SCRIPT language=JavaScript 
src="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/pw_ajax.js"></SCRIPT>

<SCRIPT language=JavaScript 
src="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/function.js"></SCRIPT>

<SCRIPT language=JavaScript>var ajxurl='http://www.ecjtu.org/blog';</SCRIPT>

<META content="MSHTML 6.00.2900.3059" name=GENERATOR></HEAD>
<BODY>
<DIV id=header><A 
style="DISPLAY: block; FLOAT: left; WIDTH: 200px; HEIGHT: 48px" 
href="http://www.ecjtu.org/blog"></A>
<DIV id=tool><A href="http://www.ecjtu.org/blog/index.php">首 页</A> &nbsp; | 
&nbsp; <A href="http://www.ecjtu.org/blog/index.php?action-team.html">朋友圈</A> 
&nbsp; | &nbsp; <A href="http://www.ecjtu.org/blog/member.php">同城博客</A> &nbsp; | 
&nbsp; <A href="http://www.ecjtu.org/blog/search.php">搜 索</A> &nbsp; | &nbsp; <A 
href="http://www.ecjtu.org/blog/faq.php">帮 助</A> &nbsp; | &nbsp; </DIV>
<DIV class=c></DIV>
<DIV id=guide>
<UL>
  <LI><A href="http://www.ecjtu.org/blog/cate.php?cid-2.html">电脑技术</A> </LI>
  <LI><A href="http://www.ecjtu.org/blog/cate.php?cid-3.html">生活人生</A> </LI>
  <LI><A href="http://www.ecjtu.org/blog/cate.php?cid-4.html">经济管理</A> </LI>
  <LI><A href="http://www.ecjtu.org/blog/cate.php?cid-5.html">时尚动态</A> </LI>
  <LI><A href="http://www.ecjtu.org/blog/cate.php?cid-6.html">舞文弄墨</A> </LI>
  <LI><A href="http://www.ecjtu.org/blog/cate.php?cid-7.html">情感天地</A> 
</LI></UL></DIV>
<DIV class=c></DIV>
<DIV style="HEIGHT: 31px">
<DIV id=sc>
<FORM id=schf action=search.php method=post><INPUT type=hidden value=2 
name=step> 
<TABLE cellSpacing=0 cellPadding=0 border=0>
  <TBODY>
  <TR>
    <TD style="WIDTH: 167px"><INPUT id=sip name=keyword></TD>
    <TD style="WIDTH: 29px; TEXT-ALIGN: left"><A id=sbt 
      onclick="GE('schf').submit();" 
      href="http://www.ecjtu.org/blog/article.php?itemid-447-type-blog.html#"></A></TD></TR></TBODY></TABLE></FORM></DIV>
<DIV id=login style="FLOAT: left">
<FORM action=login.php? method=post><INPUT type=hidden value=2 name=step> <INPUT 
type=hidden value=http://www.ecjtu.org/blog name=jumpurl> <INPUT type=hidden 
value=31536000 name=cktime> <B>用户名:</B> <INPUT class=input name=pwuser> 
<B> 密码:</B> <INPUT class=input type=password name=pwpwd> <INPUT class=btn type=submit value="登 录" name=submit> <A class=a2 
href="http://www.ecjtu.org/blog/register.php">新用户注册</A> </FORM></DIV>
<DIV class=c></DIV></DIV></DIV>
<DIV id=main style="BACKGROUND: url(image/default/mainbg2.png)">
<DIV id=mainav style="BACKGROUND: none transparent scroll repeat 0% 0%">
<DIV class=c></DIV>
<DIV style="MARGIN: 0px auto; WIDTH: 96%">
<DIV id=digg>
<H3>&nbsp; <A href="http://www.ecjtu.org/blog/index.php">交大蓝盾 BLOG</A> &raquo; <A 
href="http://www.ecjtu.org/blog/cate.php?cid-2.html">电脑技术</A> &raquo; <A 
href="http://www.ecjtu.org/blog/cate.php?cid-8.html">编程破解</A> </H3>
<DIV class=c style="HEIGHT: 15px"></DIV>
<DIV class=diggone>
<DIV class=diggc><A class=ico 
href="http://www.ecjtu.org/blog/blog.php?uid-162.html"><IMG 
src="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/162_VTz7micW9hIZKVY.gif"></A> 
<!--*******************************标题部分开始***************************************-->
<H2>标准名字空间的理解<BR><SPAN>&nbsp;作者: <A class=aa3 
href="http://www.ecjtu.org/blog/blog.php?uid-162.html">左心房的痛</A> &nbsp; 发表日期: 
2007-01-06</A> &nbsp; <IMG height=17 
src="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/copy.png" width=16 
align=absBottom> &nbsp;<A title=http://www.ecjtu.org/blog/article.php?itemid=447 
onclick="clipboardData.setData('Text','http://www.ecjtu.org/blog/article.php?itemid=447&amp;type=blog')" 
href="javascript:">复制链接</A> &nbsp; <IMG height=17 
src="标准名字空间的理解 - 交大蓝盾 BLOG - powered by phpwind_net.files/addto.gif" width=16 
align=absBottom> &nbsp;<A title=加入书签 style="CURSOR: pointer" 
onclick="addtoclt(447,'news');">收藏</A><A id=commendtomenu 
style="MARGIN-LEFT: 20px"><INPUT class=btn onclick=commendtomenu(); type=button value=推荐好友></A></SPAN></H2>
<SCRIPT language=JavaScript>	itemid=447;	</SCRIPT>
<!--*******************************标题部分结束/文章内容开始***************************************-->
<DIV class=a_text>   一、标准名字空间的理解: <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">V!U&gt; .|[ </SPAN>&nbsp;<BR><SPAN class=copyctrl 
style="FONT-SIZE: 0pt">K-4Z|ys </SPAN>&nbsp;<BR>using namespace 
std;就是标准名字空间的引用,std是C++标准库中的名字空间名称。大家都知道,当我们定义了一个类,而声明对象的时候就要用到 class_name 
后跟对象名称,标准名字空间也是这个用法。 <SPAN class=copyctrl style="FONT-SIZE: 0pt">JsbCq7c 
</SPAN>&nbsp;<BR><SPAN class=copyctrl style="FONT-SIZE: 0pt">j*Q +"h/ 
</SPAN>&nbsp;<BR>其实,我们可以按照一个更为抽象包含更广的类来理解标准名字空间。#include&lt;iostream&gt;中的iostream正是包含在这个标准名字空间里面的一个“对象”。 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">,q6[Yh : </SPAN>&nbsp;<BR><SPAN 
class=copyctrl style="FONT-SIZE: 0pt">Ls8Si!&amp;\ 
</SPAN>&nbsp;<BR>namespace是为了解决C++中的名字冲突而引入的。什么是名字冲突呢?比如,在文件x.h中有个类MyClass, 
在文件y.h中也有个类MyClass,而在文件z.cpp中要同时引用x.h和y.h文件。显然,按通常的方法是行不能的,那怎么办呢?引入 namespace即可。 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">z!GVg"*/1 </SPAN>&nbsp;<BR><SPAN 
class=copyctrl style="FONT-SIZE: 0pt">}+,fFzX(5 </SPAN>&nbsp;<BR>标准名字空间的用法: 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">#zT5 3UvK </SPAN>&nbsp;<BR><SPAN 
class=copyctrl style="FONT-SIZE: 0pt">Y ;D*Cl 
</SPAN>&nbsp;<BR>我们完全可以定义自己的标准名字空间,如下例: <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">N7tezs13`v </SPAN>&nbsp;<BR><SPAN class=copyctrl 
style="FONT-SIZE: 0pt">%UsJpIH </SPAN>&nbsp;<BR>在x.h中的内容为 <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">YZ:7&lt;ly!! </SPAN>&nbsp;<BR>// x.h 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">+SLTis{%{9 
</SPAN>&nbsp;<BR>namespace MyNamespace1 <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">U$ A 2 </SPAN>&nbsp;<BR>{ <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">CYM&amp;o;e </SPAN>&nbsp;<BR>class MyClass <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">Gjl)vq&gt;uw </SPAN>&nbsp;<BR>{ <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">2eMVU=_ </SPAN>&nbsp;<BR>public: <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">}F:npOF/o </SPAN>&nbsp;<BR>void f(); 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">D)'J(s </SPAN>&nbsp;<BR>private: 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">x1-MG~&gt; Q </SPAN>&nbsp;<BR>int 
m; <SPAN class=copyctrl style="FONT-SIZE: 0pt">m m?'&gt;/jt </SPAN>&nbsp;<BR>}; 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">6P&gt;.%wjC0 </SPAN>&nbsp;<BR>}; 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">+LK+t BZ3 </SPAN>&nbsp;<BR><SPAN 
class=copyctrl style="FONT-SIZE: 0pt">/q=oet}\4~ </SPAN>&nbsp;<BR>在y.h中的内容为 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">V.)TXUW </SPAN>&nbsp;<BR>// y.h 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">?8O[1zO" 
</SPAN>&nbsp;<BR>namespace MyNamespace2 <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">HjT'yy(b </SPAN>&nbsp;<BR>{ <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">LF}(q`g. </SPAN>&nbsp;<BR>class MyClass <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">6zfAyL </SPAN>&nbsp;<BR>{ <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">,-}49Mv0 </SPAN>&nbsp;<BR>public: <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">gEljQ </SPAN>&nbsp;<BR>void f(); 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">wkE&amp;Dxi" 
</SPAN>&nbsp;<BR>private: <SPAN class=copyctrl style="FONT-SIZE: 0pt">NgC4`x 
</SPAN>&nbsp;<BR>int m; <SPAN class=copyctrl style="FONT-SIZE: 0pt">-x, ?_Mui 
</SPAN>&nbsp;<BR>} ; <SPAN class=copyctrl style="FONT-SIZE: 0pt">!Rng`"&lt;H 
</SPAN>&nbsp;<BR>}; <SPAN class=copyctrl style="FONT-SIZE: 0pt">1 a[v@cs45 
</SPAN>&nbsp;<BR>然后在z.cpp中引入x.h和y.h <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">71&lt;~&amp;%!. </SPAN>&nbsp;<BR>// z.cpp <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">qA&amp;P{&lt;R 
</SPAN>&nbsp;<BR>#include "x.h" <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">s^zTH x </SPAN>&nbsp;<BR>#include "y.h" <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">z9XWV^_ </SPAN>&nbsp;<BR>using 
namespace MyNamespace1; <SPAN class=copyctrl style="FONT-SIZE: 0pt">e fVc.Hbq 
</SPAN>&nbsp;<BR>using namespace MyNamespace2; <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">28=I/,{ </SPAN>&nbsp;<BR><SPAN class=copyctrl 
style="FONT-SIZE: 0pt">"8@* bv </SPAN>&nbsp;<BR>void main() <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">ID+!X+^b </SPAN>&nbsp;<BR>{ <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">zZ cMp{ 
</SPAN>&nbsp;<BR>//声明一个文件x.h中类MyClass的实例x <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">&gt;U&lt;H+9&gt; 
</SPAN>&nbsp;<BR>MyNamespace1::MyClass x; <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">.&amp;&gt;NYF 
</SPAN>&nbsp;<BR>//声明一个文件x.h中类MyClass的实例x <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">"%[OR6H^ </SPAN>&nbsp;<BR>MyNamespace2::MyClass y; 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">II)-z`Q </SPAN>&nbsp;<BR><SPAN 
class=copyctrl style="FONT-SIZE: 0pt">,w%ndnU </SPAN>&nbsp;<BR>//调用文件x.h中的函数f 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">w~hu6wkuq7 </SPAN>&nbsp;<BR>x.f(); 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">y/#-ww 
</SPAN>&nbsp;<BR>//调用文件y.h中的函数f <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">,hq$yF </SPAN>&nbsp;<BR>y.f(); <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">UOy y4 </SPAN>&nbsp;<BR>} <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">N5~A&amp;b|R </SPAN>&nbsp;<BR><SPAN class=copyctrl 
style="FONT-SIZE: 0pt">2^@w0J v 
</SPAN>&nbsp;<BR>名字空间实质上是一个作用域。前面所述,数据成员要包含在类里面,那么做为一个作用域更大的类,要声明的话,根据需要,一般的类就可以放到标准名字空间里面。 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">&amp;Rjsa#"i 
</SPAN>&nbsp;<BR><SPAN class=copyctrl style="FONT-SIZE: 0pt">[\Sk _ZK 
</SPAN>&nbsp;<BR>那么,当我们声明了一个自己的标准名字空间之后,是否还可以添加包含更多的类呢? <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">z=Ni3 </SPAN>&nbsp;<BR><SPAN class=copyctrl 
style="FONT-SIZE: 0pt">gp uaD$ [ 
</SPAN>&nbsp;<BR>答案是肯定的,当我们需要的时候,我们还可以按照原来的格式添加,这样,再引用的时候,在定义的标准名字空间里面就包含了所有添加的类。 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">Ck^)#:4+_A 
</SPAN>&nbsp;<BR>二、关于名字空间定义 <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">`38H&lt;!(L4 </SPAN>&nbsp;<BR>全局实体(global entity) <SPAN 
class=copyctrl style="FONT-SIZE: 0pt">IAj\NI][ 
</SPAN>&nbsp;<BR>全局名字空间污染(global namespace pollution) <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">-\%DMP#, </SPAN>&nbsp;<BR><SPAN class=copyctrl 
style="FONT-SIZE: 0pt">!W\z^I3 </SPAN>&nbsp;<BR>1、名字空间定义 <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">8 l !Bmh_ </SPAN>&nbsp;<BR>namespace 开头,后面是名字空间的名字。 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">~(aEatQIA </SPAN>&nbsp;<BR><SPAN 
class=copyctrl style="FONT-SIZE: 0pt">X^UU,,- </SPAN>&nbsp;<BR>namespace 
cplusplus_primer { <SPAN class=copyctrl style="FONT-SIZE: 0pt">z+I(h9D|' 
</SPAN>&nbsp;<BR>class matrix {/*****/}; <SPAN class=copyctrl 
style="FONT-SIZE: 0pt">EqLxZ_ </SPAN>&nbsp;<BR>void inverse(matrix &amp;); 
<SPAN class=copyctrl style="FONT-SIZE: 0pt">Xcg;$&lt;4 </SPAN>&nbsp;<BR>matrix 
operator+(const matrix &amp;m1,matrix &amp;m2) <SPAN class=copyctrl 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -