第一范文网 - 专业文章范例文档资料分享平台

2016 c++

来源:用户分享 时间:2025/8/24 16:24:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

单选

1. 将main误写成了mian,将导致(连接错误)//在vc里面显示 linker tools error LNK156

语法错误 例如:将printf 写成print,使用未定义变量

逻辑错误 例如:将scanf遗漏了地址符&,数组应用中下标越界

2. 对于用static修饰的标识符,其作用域可以是文件,块,类作用域,不可以是对象作用域//在全局标识符的定义中加上static 修饰符则该全局标识符就成了具有文件作用域的标识符 3.下面说法错误的是(C) A、static成员函数没有this指针。

B、static成员函数不能直接访问非static成员。

C、static数据成员不能在类的定义体中初始化。//const ok

D、static数据成员独立于类的任意对象而存在,不是该类类型对象的组成部分。 4.静态函数和friend函数都不属于成员函数 5.派生类可以从基类继承 拷贝构造函数 不可以继承 析构 有元 私有成员 6. 两个类相互调用 使用 前置申明 外联实现

7. 函数重载就是在同一个作用范围内,有多个名称相同但参数不同的函数,返回类型可以不同

8. 可以作为函数A&f()(constA&a)的返回值是 *(new A(a))

9. 非静态成员函数voidf(),a为类A的一个实例化对象,调用可以是a.f(),也可以是a.A::f() 非静态成员引用必须与特定的对象相对

10. 隐式地复制构造函数是按值进行复制的,如:复制的不是一个字符串,而是一个指向字符的指针

Deep copy 显式复制函数 复制了字符串并将副本的地址赋给这个对象成员

必须定义复制构造函数的原因在于,一些类成员是使用New初始化的,指向数据的指针,而不是数据本身

New是在堆里自己动态分配的内存,需要delete

所以如果确定程序中有基类指针指向派生类的问题,则必须将基类的析构函数指定为虚函数,如此才能确保NEW出来的对象被正确的DELETE。所以养成习惯将析构函数设为虚函数

11. 复制构造函数和复制操作符 复制构造函数没有返回值

ClassType a; //

ClassType b(a); //调用复制构造函数 ClassType c = a; //调用复制构造函数

而赋值操作符要求‘=’的左右对象均已存在,它的作用就是把‘=’右边的对象的值赋给左边的对象 ClassType e; Class Type f;

f = e; //调用赋值操作符

若没有new出来一个堆内存,比如字符串不是用的 char*,则可以使用浅复制,不用 复制构造函数

12. 类成员变量里,char colour[40]和char *colour的区别

1. 在形参里面使用都使用 const char *c

2. Char c[40] strncpy(color,c,39); color[39]='\\0'; 3. Char *colour

colour=new char[strlen(l)+1]; strcpy(style,c);

4. 并且前者不用主动调用析构函数,而后者要

13、<<运算符重载的时候 要用到友元 所以在定义函数的时候 不需要 scope operator 域操作符

14、+号的运算符重载返回 对象, 因为函数不能返回在函数中创建的临时对象的引用,因为当函数结束时,临时对象将消失,因此这种引用是非法的。应返回对象,以生成一个调用程序可以使用的拷贝。

Time operator +(const Time & t)const;//member version 一个操作数通过this指针隐式地传递—>T1=T2.operator+(T3) 15、声明警卫 #

16、形参被赋值的应放在右边

17、建立对象的时候 数据成员的内存空间才被分配 18、继承破坏了数据隐藏和封装

19、派生类对象可以看作基类对象,反之则不能

20、类的成员函数后面加Const,表明这个函数不会对这个类对象的数据成员(准确的说是

非静态数据成员)作任何改变。原则是对于不改变数据成员的成员函数都要在后面加Const, 21、定义类动态对象数组时,元素只能靠自动调用该类的_无参构造函数__来进行初始化。[解析]使用new 创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化对象

22、//通常类A的拷贝构造函数的原型写为A(const A&);,请问为什么参数一定要使用引用形式?使用const修饰符除了可以防止修改传递给构造函数的实参外,还有什么作用?

//A(const A& one ).当调用此拷贝构造函数时,需将参数压栈,若不使用&,就需要在栈内创建一个one的副本,而这需要用拷贝构造函数。这样就会形成递归调用。 //使用const,还允许用一个常量对象作为样本,来构造一个新的对象。

23、静态成员不是在析构函数执行的时候释放,他是全局变量,所以在程序结束后释放 24、异常处理只能解决运行时的错误

25、 通过单例模式, 可以做到: 1. 确保一个类只有一个实例被建立 2. 提供了一个对对象的全局访问指针

3. 在不影响单例类的客户端的情况下允许将来有多个实例

for(int i=0;i<=50;i++/++i)程序运行结果相同,++i运行效率更高 每个c++类都有一个vtable,每个类对象都有个vtable的vptr;

C++继承时子类和父类同名成员变量,会同时存在这两个变量。先从对象类本身查找变量,找不到查找父类直到找到。

C++继承时子类和父类同名成员函数,存在两种情况。 1.父类的成员函数是虚函数。根据对象的实际类型执行。

2.父类的成员函数不是虚函数。和成员变量一样,先从对象类本身查找函数,找不到查找父类直到找到。

p->age=20在计算机里会转换成(*p).age=20;

做形参的时候,int a[]与int *a无任何区别。

搜索更多关于: 2016 c++ 的文档
2016 c++.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2p9x69bqhe4mn0g1mmp04oweh0q68m00omo_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top