C++题目总结

上传人:pu****.1 文档编号:552595291 上传时间:2024-02-08 格式:DOCX 页数:77 大小:170.84KB
返回 下载 相关 举报
C++题目总结_第1页
第1页 / 共77页
C++题目总结_第2页
第2页 / 共77页
C++题目总结_第3页
第3页 / 共77页
C++题目总结_第4页
第4页 / 共77页
C++题目总结_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《C++题目总结》由会员分享,可在线阅读,更多相关《C++题目总结(77页珍藏版)》请在金锄头文库上搜索。

1、作业:某商店经销种货物。货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,因此,商店需要记录下目录库存的总重量。现在用C+模拟商店货物购进和卖出的情况,设计个可以统计货物总重量的程序。要求定义个Goods类,完成此功能。作业:定义个形状类,它派生圆和矩形2个子类:矩形是圆的外接矩形,使用虚函数,求圆和圆外接矩形面积之和.作业三:定义个货物Goods类,它派生3种不同的电器子类:冰箱、彩电、空调。然后各创建一个实际的对象,即顾客购买了3种电器,比如:海尔冰箱、长虹彩电、格力空调。使用虚函数,求这些电器价格之和。/C +复习小贴土(33条)II作者:彭刚/整理时间:2004年5月

2、16日/注:这个小贴(33条)是关于C+的个简单梳理,/Z 遗漏之处,请参见有关参考书.*L使用函数sctw()来控制两个数据间的间隔,程序开头要包含头文件iomanip.h:2 .引用是指给存储单元取个别名,两者为同存储单元。3 .C语言利用库函数malloc和free实现动态内存分配。C+语言利用运算符new和加Icte实现。4 .数据区存放程序的全局数据和静态数据堆区存放程序动态申请的数据栈区.存放程序的局部数据和参数5 .递归算法不节省内存,运行效率也不高。但有些问题用该算法表达易于编程和理解。程序设计优先考虑可读性,而不是高效。6 .在同一文件里,当全局变量与局部变量同名,在局部变量

3、作用范围内,全局变量不能被访问。即“强龙压不过地头蛇”7 .局部静态变量,作用域而言是局部,但生存期而与全局变量相同,编译时分配单元并初始,程序执行不初始化。把局部变量改变为静态局部变量后,改变了它的存储方式,即改变了它的生存期,生存期为整个源程序。但作用域仍仅限丁一定义它的函数内,其它函数是不能使用它的。时空变化:生存时间变长,作用空间保持不变。把全局变量改变为静态全局变量后,改变了它的作用域,限制了它的使用范围,其作用域为定义它的源文件内,其它源文件中的函数是不能使用它的:但生存期仍为整个源程序。时空变化:生存时间保持不变,作用空间变小。8 .参数传值是参数值的拷贝,而不是参数本身。函数要

4、改变调用它的函数的变量有两种方法:指针调用和引用调用。9 .在C+中常用const变量和内联函数来代替宏和带参宏带参数的宏定义和函数的实现的区别:宏定义为替代和展开,没有增加系统的调用开销,仅能实现较简单的功能。函数:增加了系统的空间和时间的调用开销。内联函数接合了两者的优点。使用内联函数増加了冃标程序的代码量,增加了空间开销,但比使用函数节约了时间开销。因此,内联函数是以增加目标代码的尺寸来节省时间。”以空间换时间”。10 . C+把类中定义的成员函数默认为内联函数11 .函数所引用的变量在函数调用返回后必须是存在,因此,不能返回局部变量或形参。12 .类是数据隐蔵和封装的单位,它将细节封装

5、起来,只允许通过公有段的数据和函数被访问,类避免来自外界有意或无意的破坏性访问。例外:友元函数可以访问类的私有函数。友员提供个不同类的共享机制。友员是C+提供的一种破坏数据封装和数据隐蔽的机制,友员给予别的类或非成员函数访问私有成员权利。友元函数虽然可以访问类对象的私有成员,但它毕竟不是成员函数,它没有this指针,但在某时刻它究竟访问的是哪个对象的私有成员却很难确定,因此友元函数都带有传递对象的参数,显式的确定对象。友员与成员函数的参数、实现代码和使用方式都有区别:1 .友员函数必须在参数中显式地指明要访问对象2 .成员函数在它自己的对象上操作3 .成员函数要访问的対象由this指针隐含传递

6、13 .由于静态成员函数可以在没有声明类的任何实例(对象)之前就被执行,因此它们不能使用this指针。友元函数是不能引用this指针的,因为它并非类的成员函数。静态成员属于类,它不是属于对象的,不会随对象的消失而消失。由于静态数据成员不属于特定的对象,闪而不能使用构造函数和析构函数进行初始化和撤销:静态成员函数仅属于个类,不属于某个特定的对象,因此它不能像一般的成员函数那样随意的直接访问对象中的非静态的数据内容。如果要访问,则要在静态成员函数的输入参数中带指向对象的指针。14 . class empty ;空类没有任何成员,包括数据和函数。但空类对象大小不为零。15 .在C+中,结构也是种类,

7、与类的区别是默认访问权限为public.(与C兼容)在C+中,联合也是种类,联合也可以包含构造函数和析构函数,成员函数与友元函数。联合的所有成员只能为公有成员。关键字private不能用于联合(protected也不能用).16 .构造函数是种用了创建对象特殊的成员函数当创建对象时,系统自动调用构造函数,不能在程序中直接调用构造函数可以有任意类型的参数,但不能具有返回类型17 .析构函数是用手取消对象的成员函数当个对象作用域结束时,系统自动调用析构函数.析构函数没有参数,也没有返回类型,析构函数没有重载。可以使用完全限定名方式(带对象名,类名和函数名)显式地调用析构函数18 .默认拷贝构造函数

8、仅完成対象的浅拷贝,如果类含有指针成员,也要完成指针所指数据的拷贝,这时必须使用自定义的拷贝构造函数,重新开辟存储区,并逐个数组元素拷贝,制作完整副本,称为深拷19 .派生类对欣类成员可以有不同的访问方式:1 .派生类可以覆盖基类成员2 .派生类不能访问基类私有成员3 .公有继承基类的公有段和保护段成员访问权对派生类保持不变4 .私有继承基类的公有段和保护段成员成为派生类的私有成员20 .派生类构造函数声明为派生类构造函数(参数表):基类(参数表),对象成员(参数表)执行顺序:先长辈基类再客人对象成员后自己派生类21 .如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中

9、声明的名字进行访问时,可能产生二义性。如果在多条继承路径上有一个公共的基类,那么在继承路径的某处汇合点,这个公共基类就会在派生类的对象中产生多个基类子对象。要使这个公共基类在派生类中只产生一个子对象,必须将这个基类声明为虚基类。22 .可以用个指向基类的指针指向其公有派生类的对象。但却不能用指向派生类的指针指向一个基类对象.希望用基类指针访问其公有派生类的特定成员,必须将基类指针用显式类型转换为派生类指针。23 .个指向基类的指针可用来指向从基类公有派生的任何对象.这事实非常:重要,它是C+实现运行时多态的关键途径24 .如果基类中的函数是虚函数,当使用指针或引用访问对象时,将基于实际运行时指

10、针所指向的对象类型来调用派生类的函数。25 .纯虚函数是没有定义函数语句的基类虚函数,派生类必须为每个基类纯虚函数提供相应的函数定义。如果个类中至少有一个纯虚函数,则该类称为抽象类。抽象类只能用作其他类的基类,抽象类不能建立对象.26 .运算符重载后,可以按它的表达方式使用,但不能改变它们的优先级,也不能改变算符要求的操作数数目。个运算符被重载后,原有意义没有失去,只是定义了相对特定类的个新运算符。运算符函数operator用成员函数重我时,必须是共有的(public)27 .元运算符函数。pcrator用成员函数表示时,所需的一个操作数由对象通过this指针隐含地传递,因此参数表为空。一元运

11、算符函数operator用友员函数表示时,所需的个操作数在参数表中由对象显式地提供,因为友员函数没有this指针。二元运算符函数operator 用成员函数表示时,所需的二个操作数,有个由对象通过this指针隐含地传递,因此它只有一个参数。二元运算符函数operator用友员函数表示时,所需的二个操作数在参数表中由对象显式地提供,因为友员函数没有this指针。28 . C语言利用带参数的宏定义实现类属,C+利用模板实现类属.C+提供两种模板机制:函数模板类模板29 .函数模板定义不是个实实在在的函数,编译系统不为其产生任何执行代码.调用函数模板时用实参(模板实参)对参数类型实例化,即实例化为模

12、板函数,这是由编译系统产生的可执行代码,之后才能执行。30 .类模板是类的抽象,类是对象的抽象。类的实例化是对象,类模板的实例化是(模板)类。31 .类属和继承的冃的都在丁提髙软件模块的灵活性,取得代码共享.类属是一种静态技术。模板实例化在编译时就能确定,具有执行速度快,可以容纳任意数据类型的优点:继承是种动态技术,支持增量式的模块构造策略,执行速度慢些,但提供了更为灵活的动态链接技术;虚函数提供了单界面多版本实现的多态性;32 . catch()可以捕获任何异常,往往放在多个catch的最后,以避免有漏掉的异常;33 .如果个函数抛掷个异常,但在通往异常处理函数的调用链中找不到与之匹配的ca

13、tch,则该程序通常以abort()函数调用中止;1函数的例题int a=3, b=5;int max (int a, int b)(return(a b ? a: b);main() a=8;cout*max is Mmax( a, b)endl;)*#include int x=ll;void main( int z )int y=x;int x=l;coutyM nxendl;:x=2;y=x;coutyM Hxendl;cout:xendl;)main()main()int int x=l; int x=2; int x=3;cout4tx=,xendl;)coutt4x=Mxendl

14、;)coutt4x=Mxendl; int x=3;coutt4x=Mxendl;)coutt4x=,xendl;) cout44x=Mxendl;double x=1.0, y=2.0, z;main。 double f();/定义在后,应加说明/z=f();coutt*x=,x4t*t*y=,ytt,*z=,zendl;Idouble f() double y, z;x=y=z=3.0; return(x+y+z);*#include int main(void)const int MAX=10;/MAX 放在哪里?int array2=14*P=array;coutvvAddress of MAX:,&MAXendl;coutHAddress of array:Harrayendl;cout*p of value:Hpendl;p=p+2;cout*p of va

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号