??xml version="1.0" encoding="utf-8" standalone="yes"?>麻豆精品久久久,一区二区日本伦理,欧美伦理影视网http://www.aygfsteel.com/tbg1986/zh-cnWed, 18 Jun 2025 04:41:40 GMTWed, 18 Jun 2025 04:41:40 GMT60- 修饰W的位置http://www.aygfsteel.com/tbg1986/archive/2008/08/05/220185.html清流琴音清流琴音Tue, 05 Aug 2008 07:24:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/08/05/220185.htmlhttp://www.aygfsteel.com/tbg1986/comments/220185.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/08/05/220185.html#Feedback3http://www.aygfsteel.com/tbg1986/comments/commentRss/220185.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/220185.html
应该修饰符* ?&紧靠变量名。例如:int *a; int &a;
cȝ版式Q?br />
cd以将数据和函数封装v来,其中函数是表C类的行为。也可以UCؓ是服务。类提供了关键字public ,protect ,private用于声明哪些是公qQ哪些是保护的,哪些?U有的。这样可以让c隐藏必要的东西?br />
cȝ版式主要有两U版?
(1):W一U将privtecd的数?写在前面Q将publiccd的数据写在后面。采用这U版式的E序员主?#8220;以数据ؓ中心Q?#8221;重点xcȝl构?br />
(2):W二U版式是publiccd写在前面。将private写在后面。这U版式的E序员主?#8220;以行Zؓ中心”。重点关注的是类应该提供什么样的接口(或者服务)?br />
我徏议大安?#8220;以行Zؓ中心?#8221;的这U类?版式。因栯计类的时候。首先考虑的类可以提供什么洋的服务。而且方便用户阅读?br />

]]> - E序的版?/title>http://www.aygfsteel.com/tbg1986/archive/2008/08/01/219360.html清流琴音清流琴音Fri, 01 Aug 2008 07:32:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/08/01/219360.htmlhttp://www.aygfsteel.com/tbg1986/comments/219360.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/08/01/219360.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/219360.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/219360.html
IL分隔E序D落的作用?br />
(1):在给个类的声明之后,函数的定义之后,都要加上I?br />
(2):在一个函C内,逻辑关系密切的相兌句之间不可以加上I?br />
代码行:
(1):一行代码指做一件事情。例?只声明一个变量?br />
(2)Qif ,for while,do{语句自占一行。执行语句不能紧跟其后?br />
Q在定义变量的同时。初始化该变量?br />
如果变量的引用和定义的地Ҏ较远Q那么很Ҏ׃忘记了变量的初始化。如果引用了一个没有初始化的变量,那么很有可能׃引v错误?br />
代码行内的空|
(1)Q关键字之后要有I格。向const ,virtual,case{关键字后面臛_要留一个空根{否则的话,无法辨认关键字。象if.while, for{关键字后面紧跟一个空格在?#8220;Q?#8221;以显C关键字的?br />
(2):函数名之后不要留I格Q紧?#8220;Q?#8221;以和关键字区别?br />
寚wQ?br />
E序的分界符“{”?}"应该独占一行ƈ且位于一列?br />

]]> - 文g的结?/title>http://www.aygfsteel.com/tbg1986/archive/2008/08/01/219349.html清流琴音清流琴音Fri, 01 Aug 2008 07:13:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/08/01/219349.htmlhttp://www.aygfsteel.com/tbg1986/comments/219349.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/08/01/219349.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/219349.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/219349.html
1Q头文g开头出的版本和版权?声明?br />
2Q预处理块?br />
3Q函数和cȝl构声明{?br />
规则Q?br />
(1): Z防止头文件被重复的引用,应该使用#ifndef/define/endifl构产生与处理模块?br />
(2):?include<filename.h>来引用标准库的头文gQ编译器从标准库目录开始搜索)?br />
(3):?include"filename.h"来引用非标准库的头文Ӟ~译器将从用户工作的目录开始搜索)
Q头文g中一般只存放“声明”Q而不存放“定义”
定义文g的结构:
定义文g?内容有由三部分组成:
(1): 定义文g开头处的版本和版权Q?br />
(2):对一些头文g的引用;
(3):E序的实CQ包括数据和代码Q?br />
头文件的作用Q?br />
(1):通过头文件来调用库功能。在很多场合源代码不能(或者不准)提供l用戗只提供l用头文件或者二q制的库。用户只需要按照头文g中的接口的声明来调用库功能。而不必关心接口是如何实现的。编译器会从库中提取相应的代码?br />
(2): 头文件可以用来加强类型安全检查。如果某个接口被实现或者被实用的时候,其方式和在头文g中的声明不一致的时候,~译器就会报错。这一单的规则可以大大的减ȝ序员调试和改错的负担?br />
目录l构Q?br />
如果一个Y件的头文件比较多Q超q?0个)Q就应该把头文g和定义文件分开。分别保存在不同的目录之中。以便于l护?br />
例如Q可以将头文件保存在inluude目录之中。将定义文g保存在source文g之中?br />
如果某些头文件是U有的,不会被程序直接引用,Z加强信息隐藏。那么可以把q些头文件和定义文g攑֜同一目录之中?br />

]]> - 指针cdhttp://www.aygfsteel.com/tbg1986/archive/2008/07/08/213329.html清流琴音清流琴音Tue, 08 Jul 2008 06:43:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/07/08/213329.htmlhttp://www.aygfsteel.com/tbg1986/comments/213329.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/07/08/213329.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/213329.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/213329.html
指针的典型用法是构徏一个连接的数据l构Q例如:链表(list)和数(tree)。ƈ理在程序运行的q程中动态分配的对象。以及作为函数参数类型。主要用来传递数l和大型cȝ对象?br />
每个指针都有相关的类型?br />
不同数据cd的指针之间的区别不在于指针的表示上,也不是指针所持有的|地址Q。——对于所有类型的指针q两个方面都是一L。不同之处在于指针所指的对象的类型上。针l类型可以指定编译器咋样解释特定内存上的指定的内容,以及该内存区域因该跨多内存单元?br />

]]> - 变量?/title>http://www.aygfsteel.com/tbg1986/archive/2008/07/08/213328.html清流琴音清流琴音Tue, 08 Jul 2008 06:26:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/07/08/213328.htmlhttp://www.aygfsteel.com/tbg1986/comments/213328.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/07/08/213328.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/213328.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/213328.html
语言本n没有对变量名做什么限制。但是ؓ了用L惻I他不应过ѝ?br />
c++保留了一些词用作关键字。关键字标识W不能在作ؓ标识W在E序中用了?br />
对于命名对象有很多已l普遍接受的习惯。主要考虑的因素的是程序的可读性?br />
W一Q对象的命名一般用写?br />
W二Q标识符通常用容易记忆的名字?br />
W三Q对于多词构成的标识W一般在词的中间加上下划Uѝ?br />
对象的定义:
一个简单的对象的定义由一个类型指C符后面加上一个名字构成,以分L束?br />
例如Q?int aaaaa;
当同cd的多个标识符被定义的时候,我们可以在类型指C符后面用逗号隔开?br />
一个简单的定义指定了变量的cd和标识符。他q不提供初始倹{?br />
如果一个变量是在全局域(globe scopeQ中定义?那么pȝ会保证给他一个初始?。如果一个变量是在一个局部域中定义的Q或者通过一个new 动态分配的Q那么系l不会向它提供初始?。这些对象被UCؓ未初始化QuninitializedQ?未初始化的对象不是没有|而是对象的值未被定义?br />
因ؓ使用未初始化的对象是个很常见?nbsp; 错误Qƈ且很难被发现。所以徏议ؓ每个定义的对象进行初始化?br />
cL刉过~省构造函数提供了cd象的自动初始化?br />
例如Q?br />
int main()
{
int valQ?///////未被初始化的倹{?br />
string projectQ?/////通过stringcȝ~省的构造函数进行了初始化?br />
}
val是一个未被初始化的局部变量?br />
但是project是一个已l被初始化的cd象——被stringcȝ省的构造函数自动初始化?br />
初始化一个值可以在对象定义的时候进行?br />
c++支持两种形式的初始化?br />
W一U是使用赋值符L现实的操作?br />
如:
int val=111;
string project="ssssss";
隐式形式中,初始化D攑֜括号中?br />
int val(111);
string project("sssssss");
在对象的定义之中Q当对象的标识符在定义中出现后,对象名马上就是可见的了。因此用对象初始化他自己是合法的Q只是这样做不是明智的?br />
例如Qint val=val;///////合法Q但是不是明智的?br />
另外Q每U内|数据类型都支持一U特D的构造函数。可对象初始化??br />
/////讄val?。设|dval?.0?
int val =int();
double dval=double();
下列的定义中Q?br />
int()
vector <int>ival(10);
函数int()自动被应用到ival包含?0个元素上?br />
对象可以用Q意复杂的表达式来初始化,也可以用q回?

]]> - 变量http://www.aygfsteel.com/tbg1986/archive/2008/07/08/213256.html清流琴音清流琴音Tue, 08 Jul 2008 02:49:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/07/08/213256.htmlhttp://www.aygfsteel.com/tbg1986/comments/213256.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/07/08/213256.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/213256.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/213256.html
c++中给个符号变量都有一个符L型与之对应。这个类型决定了相关内存的大,cdQ布局Q能够存贮在该内存值的范围。以及可以以用到其上的操作集。我们也可以把变量说成是对象QobjectQ?br />
?br />
变量和文字常量都有存贮区Qƈ且都有相关的cd。区别在于变量是可以d的(adressableQ常量文字是不可以寻址的(nonadressableQ?每一个变量都有两个g之联pȝQ?br />
1Q数据倹{存贮在内存的某个存贮区之中。有时候这个数据g被称为是叛_|rvalueQ?我们可以认ؓ叛_是被读取的倹{文字常量和变量都可以被用来做右倹{?br />
2Q它的地址倹{即存贮它数据值的那块内存的地址。它有时候被UCؓ左|lvalueQ。我们也可以认ؓ左值的意思是位置倹{文字常量不能被用作左倹{?br />
变量的定义会引v相关内存的分配。因Z个对象只能有一个存贮位|,所以一个对象只能被定义一ơ。如果在一个文件中定义的对象需要在另一个文件中被访问,那么׃出现问题?br />
在c++中,对象在用之前必ȝ道对象,引用一个未知的对象会引L译器的错误?br />
如果一个对象在另一?nbsp; 文g中声明着Q我们想在这个文件中来用这个对象,但是又不能在q个文g中在声明相同的对象。那么我们可以用extern关键字来声明q个对象?br />
例如; file module.c
string aaaaa;
///定义了对象aaaaa
file module1.c
////需要用对象aaaaa.Q?br />
////声明对象aaaaaQɽE序知道它。但是又不能引入W二个定义?br />
extern string aaaaa;
对象声明是ɽE序知道对象的类型和名字。它由关键字extern后面跟对象的cd和对象的名字构成?br />
声明不是定义Q不会引起内存的分配。实际上它只是说明了在程序之外的某处有这个变量的定义?br />
虽然一个程序中只能包含一个对象的定义Q但是可以包含很多的对象声明?br />
比较好的做法? 不是在每个要使用的文件中都单独提供一个声明。而是在在头文件中声明q个对象Q然后在需要声明这个对象的时候包含这个头文g好了。按照这个做法。如果需要修改对象的声明只需要修改一ơ。就能维持多个用这个对象的声明文g的一致性?br />

]]> - 面向对象的程序设?/title>http://www.aygfsteel.com/tbg1986/archive/2008/07/07/212970.html清流琴音清流琴音Mon, 07 Jul 2008 02:33:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/07/07/212970.htmlhttp://www.aygfsteel.com/tbg1986/comments/212970.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/07/07/212970.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/212970.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/212970.html面相对象的程序设计扩展了l予对象的程序设计。可以提供类型和子类型的关系。这个是通过一U称作承(inheritanceQ的机制来实现的?/p>

]]> - c++的數據結?/title>http://www.aygfsteel.com/tbg1986/archive/2008/07/04/212620.html清流琴音清流琴音Fri, 04 Jul 2008 07:35:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/07/04/212620.htmlhttp://www.aygfsteel.com/tbg1986/comments/212620.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/07/04/212620.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/212620.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/212620.htmlc++預定了一i數值數據類型。可以用來表C整型,點型和單個字W。此外還預定了表C字W串的字W數i?br />
1Q字W型char:通常用來表示單個字W和整數。它可以用一個機器字來表C(?位表C)?br />
2Q整型int 短整型short Q長整型long分別表示不同長度的整數倹{典型的情況下:short用半個字表示Q即16位)。int 用一個字表示Q即32位。)long用一個或者兩個字表示。(?2位的器中通常int 和long的通常長度相同。)
3QQ點型flont ,雙精度double和長雙精度。長雙精度long double 。分別表C單_ֺ點數。雙_ֺ點數和擴展_ֺ的Q點數。典型的情況下,float用一個字表示。double用兩個字表示Qlong double用三個或者四個字表示?br />
char ,int, float , long Eq整值類型(intergral typeQ。整值類型可以有W號也可以沒有符號。在有符號的型中。最左邊的位是符號為。余下的位代表數倹{。在無符號的型中,所有的位表C數g?br />
如果W號a置?。那么數D解釋數。如果符號為被設|為0。那么數g被解釋為正數?br />
一?位有W号的char 表示-128---127之间的倹{而一个无W号的char则表C?--255之间的倹{?br />
当一个倹{例?。出现在E序的时候,我们U它为文字常量。称他ؓ“文字”是因为我们只能以他的值的形式来指代它。称之ؓ帔R是因为它的g能被改变。每个文字都有相应的cd。文字常量是不可d的(nonadressableQ。尽他的g被存储在机器的某个内存之中。但是我们没有办法来L它的地址?br />
整数文字帔R可以被写成十q制。八q制Q十六进制的形式。(q不会改变该整数的位序列Q。例如:20可以写成以下的方式:
20/////////十进制Ş?br />
024/////八进?br />
0x14////十六q制?br />
在整型常量前面加?。该值将被解释成一个八q制数。而在整Ş帔R的前面加?xQ则该值将会被解释成十六进制数?br />
在缺省的情况下,整Ş帔R被当作一个int的有W号的整数?br />
我们可以在一个文字常量的后面加上一?#8220;L”或?l"Q将其指定ؓlongcd?br />
cM的,我们在文字常量的后面加上“u”或?#8220;U”。表CZ个无W号的数?br />
此外Q我们还可以指定无符号longcd的数。例如: 1UL.
单词true 和false是bool型的文字帔R?br />
可以打印的文字常量可以用单引?'括v来例如:
'A','S'...{?br />
不能够直接打印的字符Q单引号Q双引号Q和反斜杠就i可以用{义序列来来表C(转移序列用反斜杠来开_?br />
\n 换行W?br />
\t水^制表W?br />
\v垂直制表W?br />
\b退格符
\r回R?br />
\a响铃?br />
\\反斜杠键
\?问号
\'单引?br />
\""双引?br />
另外字符文字前面可以加上“L
例如QL'a'
q个UCؓ宽字W文字,cd为wchar_t.宽字W常量用来支持某些语a字符的集合。例如:汉语Q日语等
q些语言中的某些字符不能用单个的字符来表C?br />
字符串常量由零个或者许多个由双引号括v来的 字符
不可以打印的字符q应的转移序列来表C,而一个字W串文字可以扩展到多行。在一行的最后加上一个\Q表C字W串文字在下一行l?br />
如:"fdfdf fdfdf\dfdfdfsdffdfdfdf"
字符串文字的cd是常量字W数l。字W文字本w和 ~译器加上的表示l束?NULL),字符构成?br />
例如Q?a'表示一个单个的字符a
"a"则表CZ个字Wa和一个空字符Q?br />
I字W是c和c++用来标记字符串结束的W号
正如宽字W文字。L'a'
也有宽字W串文字L"aaaaaaa"
宽字W串文字的类型是帔R的宽字符数组。他也有一个等L宽空字符作ؓl束的标记?br />
如果两个字符串和或者宽字符串在E序中相邅Rc++׃把它们连接v来。ƈ且在最后加上一个空字符Q?br />
例如Q?one" "two" 则输出的l果为onetwo.
如果把一个字W串帔R和一个宽字符串常量链接v来,那么l果会是如何呢?
"aa" L"SSS"
l果是未定义(undefine)------x有这U这两种不同cd链接标定义行为?br />
使用未定义的E序被称为是不可以移植的?br />
虽然E序可以在当前的~译器下可以执行Q但是不能保证相同的E序在不同的~译器下Q或者在当前的白一L以后的版本中Q还能够正确的编译通过?br />
在本来可以正常运行的E序中来Lq些是g很o人心烦的事情Q所以我们徏议不要用未定义的程序特征?br />

]]>- 标准数组——向?/title>http://www.aygfsteel.com/tbg1986/archive/2008/06/30/211670.html清流琴音清流琴音Mon, 30 Jun 2008 07:18:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/06/30/211670.htmlhttp://www.aygfsteel.com/tbg1986/comments/211670.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/06/30/211670.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/211670.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/211670.html正如我们看到的,管c++的数l支持容器机制。但是它不支持容器抽象的语义。ؓ了在q个层次上编写程序。在标准c++之前。要么我们从某个途径获取q样的类。要么我们自q写这LcR?br />
在标准c++中。数l类是c++标准库中的一部分。现在它不叫数组了,而叫向量(vector)?br />
当然向量是一个类模板Q我们可以这样写Q?br />
vector<int> ivec(10);
vector<string>svec(10);
上面的代码分别定义了包含10个整型的对象的向量,和定义了包含10个字W串的对象的向量?br />
在我们实现的ArraycL板和vectorcL板的实现中有两个不同的区?
vectorcL板支?#8220;向现有的数组元素赋?#8221;的概念以?#8220;插入附g元素?#8221;概念---------即vector数组可以在运行时动态的增长。(如果E序员愿意用这个特征的话。)
W二个区别是 Q?更加q泛。代表了设计Ҏ的重要改变。vectorcM是提供一个巨大的“可以适用于向?#8221;的操作集。如;store(),min().max(){。而是只是提供一个最集Q如Q等于,于Qsize(),empty(){操作。而一些通用的操作如Qsort(),min().max(),find()。等操作是作为独立的泛型法Qgeneric algorthemQ被提供的?br />
要定义一个向量我们必d含相关的头文件?br />
#include<vector>
下面都是vector对象的合法定义?br />
vector<int>vecto;///////I的vector
const int size=8;
const int value=1024;
//size?的vector
///每个元素都被初始化ؓ0
vector<int>vecto(size);
//size?的vector
///每个元素都被初始化ؓ1024
vector<int>vecto(size ,value);
////vector3的size?
///vector3的初始化gؓia ?个?br />
int ia[4]={0,1,1,2};
vector<int>vector3(ia,ia+4);
////vector4是vector2的拷贝?br />
vector<int>vector4(vector2);
既然定义了向量,那么我们必遍历里面的元素?br />
与ArraycL板一栗标准的vectorcL板也支持使用下面的操作符?br />
例如Q?br />
#include<vector>
extern int getsiz();
void mumble()
{
int size=getsize();
vector<int>vec(size);
for(int i=0;i<=size;i++)
{
vec[i]=i;
/////,.............................
}
}

]]> - 用其他名字来命名数组http://www.aygfsteel.com/tbg1986/archive/2008/06/30/211616.html清流琴音清流琴音Mon, 30 Jun 2008 03:15:00 GMThttp://www.aygfsteel.com/tbg1986/archive/2008/06/30/211616.htmlhttp://www.aygfsteel.com/tbg1986/comments/211616.htmlhttp://www.aygfsteel.com/tbg1986/archive/2008/06/30/211616.html#Feedback0http://www.aygfsteel.com/tbg1986/comments/commentRss/211616.htmlhttp://www.aygfsteel.com/tbg1986/services/trackbacks/211616.html名字I间允许我们装名字Q否则的话,q些名字有可能污染到全局的名字空_pollute teh global namespceQ?一般来_只有我们希望我们的代码被外部软g开发部门用的时候。才会用到名字空间?br />
例如;我们可以q样来封装Arrayc,
namespace cplacple_primer_3E
{
template <calss eyemly>
calss Array{,,,,,,,,,};
////////////////////////
}
namespce后面的名字标明了一个名字空间。它独立于全局名字I间。我们可以在里面放一些希望声明在函数和类之外的实体。名字空间ƈ不改变他们的声明意义。只是改变了它们的可视性。如果名字空间中的声明对于程序来说不是立卛_见的。那么我们杂h讉K他们呢?我们p用到限定修饰名字W?
格式如下Q?br />
namespce_idenerfier::entrityname
名字I间别名Qnamespce aliasQ允许用一个可替代的,短的Q或者跟一般的名字来和名字I间来关联v来?br />
例如Q?br />
//提供一个更一般化的名?br />
namespce lib=cplacple_primer_3E
然后q个名字׃UCؓ原始名字I间的同义词?br />
#include "cplacple.h"
int main()
{
lib::Array{...........}
}
别名也可?用来装正在使用的实际的名字I间。在q种情况下,我们可以通过改变别名的名字空间?br />
来改变所使用的声明集。而无需改变“通过别名来访问这些声?#8221;。的实际代码?br />
using 指示W名字I间中的所有的声明都是可见得。这栯些声明可以不加Q何的限定的用?br />
using和namespce都是关键字。被引用的名字空间必dl被声明了。否则的话,会引L译的错误?br />
using 声明提供了更为精l的名字可视化机制。它允许使名字空间中的单个的声明可见?br />
例如Q?br />
#include"IBM_Canada_Labaraory.h"
using namespace IBM_Canada_Labaraory::Matriy
int main()
{
//ok; IBM_Canada_Labaraory::Matriy
Matriy met(4,5);
//fail,错误。IBM_Canada_Labaraory::Array不可?br />
Array array(4,5);
}
Z防止标准的c++库组件污染用户定义的名字I间。所有的c++库组仉声明在一个称为std的名字空间中?br />
所以即使我们在我们的文本文件中已经包含了c++库头文gQ头文g中声明的内容在我们的文本文g中也是不可见的?br />
例如Q?br />
在c++中下面的代码是不能被~译通过的?br />
#include<string>
///错误。string 是不可见?br />
string current_string="asdf dfdff";
在string 头文件中所有的声明都包含在std名字I间中?br />
我们可以?#8220;#include 指示W后面加上using 的办法?lt;string>中的Q在std中声明的lgQ对于我们的文本文g是可见得?br />
例如Q?br />
#include<string>
using namespace std
int main()
{
//////////正确。string 是可见的?br />
string current_string="asd fdfdf"
}
Z使在std中,声明的组件和名字在我们的文本文g中可见。using指示W通常被看作是一U比较差的选择Ҏ?br />
在上面的例子中。指C符using Q在string头文件中声明的,q且在std名字I间中的 lg在我们的文本文g中都是可见的。这又将全局名字I间污染问题带回来了。而这个问题就是std名字I间首先要努力避免的?br />
它增加了“c++标准库组件的名字”?#8220;我们E序中声明的全局名字”冲突的机会?br />
现在有两U机制可以替代using指示W。来引用隐藏在std名字I间中的名字string.
W一U方法:
可以使用限定的名字?br />
#include<string>
/////正确。用限定的名字
std:: string current_string="afdfdfsdfs";
W二U方法:
如下使用using 声明Q?br />
#include<string>
using std::string;
/////ok.上面的using声明使string可见?br />
string=“dfdfdfafsdf”;
Z使用名字I间中的声明的名字。最好用带有精l选择功能?using声明替代using 指示W?br />

]]>
վ֩ģ壺
|
|
|
|
|
|
ɫ|
绯|
ͼ|
˳|
ʯ|
|
|
|
üɽ|
Դ|
|
|
¡|
|
|
|
|
|
ʤ|
|
Ӽ|
|
|
|
|
ԭ|
¸|
|
|
ˮ|
|
ƫ|
ͼ|
ͩ|
|