学习C++Primer心得.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习CPrimer心得

学习C++Primer心得和一些问题 1、在VC的MFC程序中能否使用cout输出? 答:不能。必须使用CDC来进行输出。 ? 2、C++中子类的构造函数是否会自动调用基类构造函数? 答:会。如果在子类的构造函数中不显式指定调用基类构造函数,则将自动调用基类缺省构造函数,所以基类一定要有缺省构造函数。如果子类的构造函数除了调用基类构造函数以外什么都不做,不能不写,必须写一个空函数。 ? 3、子类对象的初始化过程是怎样的? 答:先调用基类构造函数来初始化相关的基类子对象,然后再执行子类(派生类)的构造函数。 ? 4、名字空间的使用有哪些方式? 答:大概有三种方式: l?????????使用名字空间别名加上名称限制修饰符 namespace?LIB?=?IBM_Canada_Laboratory; LIB::Arrayint?ia(1024); l?????????using指示符,使名字空间内的所有声明可见 using?namespace?IBM_Canada_Laboratory; l?????????using声明,使名字空间中的单个声明可见 using?IBM_Canada_Laboratory::Matrix; using指示符和using声明的本质是不同的。 ? 5、如何声明一个对象已经在文件外被定义? 答:使用extern来声明。可以在多个地方多次声明同一个对象,但是一个对象只能被定义一次,而且多个声明必须明确无误的指向这个定义实体。声明不分配内存,定义分配内存。 ? 6、类的缺省构造函数会为类的数据成员初始化吗? 答:不会。只会分配内存,不会初始化。必须在缺省构造函数中显式进行初始化。 ? 7、下面的对象初始化是调用赋值操作符吗? BaseClass?base1;?BaseClass?base2?=?base1; 答:不是。是调用拷贝构造函数。 ? 8、类中的常量数据成员应该在哪里被初始化? 答:应该在类的成员初始化列表中初始化。 ? 9、typedef引入了新的类型吗? 答:没有。它仅仅是用来为内置或用户定义的数据类型引入助记符号。 ? 10、空指针解引用会出错吗? 答:会。对指针解引用之前一定要先确定其不为零。 ? 11、算术异常会抛出实际异常吗? 答:算术异常是指计算过程中出现不正确或未定义的值,如除以0或溢出。但是不会导致抛出实际的异常。 ? 12、size_t是什么类型? 答:这是用typedef引入的类型助记符,代替unsigned?int。 ? 13、用sizeof可以获得一个数组的长度,为什么在传递数组给函数时还要带上长度参数? 答:用sizeof是可以获取一个数组的长度,如int?a[10];?int?len?=?sizeof(a)/sizeof(int);。但是,在用数组作为参数传递给函数时,数组变为了指针,所以在函数内部不能获取数组长度。 ? 14、算术转换的指导原则是什么? 答:有两个通用原则:一、类型总是被提升为较宽的类型;二、所有含有小于整型的有序类型,在计算之前,其类型都会被转换成整型。 ? 15、都有哪些显式强制转换操作符?它们的功能是什么? 答:有static_cast、const_cast、dynamic_cast和reinterpret_cast。static_cast可用来执行任何编译器可隐式执行的任何类型转换。const_cast用来将常量对象或指针转换为非常量对象或指针。reinterpret_cast通常对于操作数的位模式执行一个比较低层次的重新解释,相当于旧式的指针强制转换。dynamic_cast支持在运行时刻识别由指针或引用指向的类对象。 ? 16、对于类对象的定义为什么最好在用之前才定义,而不要在一开始就定义? 答:对于内置类型,它的定义只是分配内存,不会做更多的处理。而对于类对象,它的定义除了分配内存外,还要调用构造函数。因此,如果在函数或语句块一开始就定义类对象,必然会导致构造函数的调用,而这些调用的开销可能是不必要的。这使得程序的效率下降。因此,最好是当真正要用的时候才去定义比较好。 ? 17、容器类型的容量与长度的区别? 答:容量只与连续存储的容器类相关,如vector、deque或string,而对于非连续存储的容器类,如list,则没有容量的概念。它是指在容器下一次需要增长自己之前能够被加入到容器中的元素的总数,可调用capacity()操作来获得。长度是指容器当前拥有元素的个数,可调用size()操作来获得。容量的增长方式是与具体实现有关的。 ? 18、迭代器的基本概念是什么? 答:迭代器提供了一种一般化的方法,对顺序或关联容器类型中的每个元素进行连续访问。 ? 19、什么时候函数应该采用引用参数? 答:一、希望改变实参的值,又不想用指针操作;二、

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档