面向对象技术(cprimer)第4章

面向对象技术(cprimer)第4章

ID:38688455

大小:1.46 MB

页数:38页

时间:2019-06-17

面向对象技术(cprimer)第4章_第1页
面向对象技术(cprimer)第4章_第2页
面向对象技术(cprimer)第4章_第3页
面向对象技术(cprimer)第4章_第4页
面向对象技术(cprimer)第4章_第5页
资源描述:

《面向对象技术(cprimer)第4章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章数组和指针1数组与vector类型相似,也可以保存某种类型的一组对象。区别在于数组的长度是固定的。数组一经创建,就不允许添加元素。程序员无法知道一个给定数组的长度。指针可以像迭代器一样用于遍历和检查数组中的元素。使用指针很容易出错。与容器和迭代器相比,依赖于数组和指针的程序更容易出错。现代C++程序更多使用vector代替数组。数组被严格限制使用,只有当测试性能表明用vector达不到性能要求时,才使用数组。4.1数组的定义和初始化2数组是由类型名、标识符和维数组成的复合数据类型。类型名规定了存放在数组中的元素

2、的类型维数指定了数组中包含的元素的个数。必须用值大于等于1的常量表达式定义。constunsignedbuf_size=512,max_files=20;intstaff_size=27;//conconstconstunsignedsz=get_size();//constvaluenotknown//untileruntimecharinput_buffer[buf_size];//ok,constvariablestringfileTalbe[max_files+1];//ok,constantexpressi

3、ondoublesalaries[staff_size];//error,nonconstvariableinttest_scores[get_size()];//error;nonconstexpressioninttest_scores[get_size()];//error;nonconstexpressionintvals[sz];//error;sizenotknownuntiolruntime数组初始化31.显式初始化数组元素constunsignedarr_size=3;intia[array_size

4、]={0,1,2}若无显式初始化,则:在函数体外定义的内置数组,无素均为0.函数体内定义的内置数组,元素无初始化若元素为类类型,无论在那里定义,则自动调用该类的默认构造函数进行初始化。如果该类没有默认构造函数,则必须为该数组的元素提供显式初始化。。4Intia[]={0,1,2};//anarrayofdimension3Constunsignedarray_size=5;Intia[array_size]={0,1,2};//ia={0,1,2,0,0}Stringstr_arr[arr_size]={“hi”,”

5、bye”};//str_arr={“hi”,”bye”,””,””,””}特殊的字符数组5charca1[]={‘C’,’+’,’+’};//nonullCharca2[]={‘C’,’+’,’+’,’’};//explicitnullCharca3[]=“C++”;//nulladdedautomaticlConstcharca3[6]=“Daniel”;//error,is//7elements数组不能直接复制和赋值6与vector不同,一个数组不能用另外一个数组初始化,也不能将一个数组赋值给另一个数组。In

6、tia[]={0,1,2};//ok,arrayofintsIntia2[](ia);//error,cannotinitializeany//arraywithanotherIntmain(){constunsignedarray_size=3;intia3[array_size];//ok,buteleareunintializeia3=ia;//error,cannotassignonearaytoanotherreturn0;}数组操作7数组元素可用下标操作符访问。从0开始。Vector的下标类型为vecto

7、r::size_type,数组的下标类型为size_tIntmain(){constsize_tarray_size=10;intia[array_size];//10intsfor(size_tix=0;ix!=array_size;++ix)ia[ix]=ix;return0;}8Intmain(){constsize_tarray_size=7;intia1[]={0,1,2,3,4,5,6};intia2[array_size];//local,eluninitial//copyelementformia1t

8、oia2for(size_tix=0;ix!=array_size;++ix)ia2[ix]=ia1[ix];return0;}4.2指针的引入9指针是指向某种类型对象的复合数据类型,是用于数组的迭代器:指向数组中的一个元素。可使用解引用操作符*和自增操作符。指针用于指向对象。指针保存的是另一个对象的地址:strings(“helloworld

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。