浩鲸科技2020届c++

1.C++是类型安全的
Java、c#语言是类型安全的,除非强制类型转换。
C语言不是类型安全的,因为同一段内存可以用不同的数据类型来解释,比如1用int来解释就是1,用boolean来解释就是true。
2.float a,b,c , 那么可以如下判断 (a+b)+c==(b+a)+c 和 (a+b)+c==(a+c)+b
浮点数不满足结合律,且一般不用 == 判断是否相等

if(abs(a - b) < epsilon)return true;

3.C++里面所有的动作都是main()引起的

main函数只是程序的入口,也就是程序通过main函数开始运行,后续动作就取决于用户了。
特别是Windows下的窗口的程序,它们不仅没有main函数(有WinMain函数),而且动作都是由消息引起的(可以理解成用户的键盘鼠标等消息)。

C和C++中的一般全局变量(不包括类class)是在编译期确定的初始值,而不是在程序运行时,在main函数之前初始化的。

C++中的类的全局变量是在程序运行时,在main函数之前初始化的。
Windows中的DLL和COM组件同样没有main函数,但是他们也能被调用和执行特定的工作

4.内联函数在编译时做参数类型检查
做类型检查,因为内联函数就是在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来代替。
宏不做检查
5.C++对调用的虚函数和模板类都进行迟后编译
****对调用的虚函数和模板类都进行迟后编译.,理由:如果虚函数在基类与子类中出现的仅仅是名字的相同,而参数类型不同,或者返回类型不同,即使写上了virtual关键字,也不进行迟后联编。
stackoverflow上,可以看到解释,http://stackoverflow.com/questions/27227189/override-virtual-function-with-different-parameters-in-c
C++里有两种编译类型:
1) 先期联编或静态联编:在编译时就能进行函数联编称为先期联编或静态联编。
2) 迟后联编或动态联编:在运行时才能进行的联编称为迟后联编或动态联编。
virtual关键字的作用就是提示编译器进行迟后联编,告诉链接过程:“我是个虚的,先不要连接我,等运行时再说”。 具体原理:当编译器遇到virtual后,会为所在的类构造一个表和一个指针,那个表叫做vtbl,每个类都有自己的vtbl,vtbl的作用就是保存自己类中虚函数的地址,我们可以把vtbl形象地看成一个数组,这个数组的每个元素存放的就是虚函数的地址,指针叫做vptr,指向那个表。而这个指针保存在相应的对象当中,也就是说只有创建了对象以后才能找到相应虚函数的地址。
对于下面这种常见代码(假如Base是Derive的父类):

构造函数是先于虚函数的,因为只有有构造函数,才能创建虚表,所以构造函数不可能是虚函数,自然也不能是纯虚函数

6.所有的运算符都能重载

不能重载的运算符只有5个: (1). (成员访问运算符)。 (2).* (成员指针访问运算符)。 (3)∷(域运算符)。
(4)sizeof(长度运算符)。 (5)?: (条件运算符)。

7.值返回的函数(如:double sqrt(double);)的调用表达式,如:sqrt(2.0))代表一个无名的临时变量(或对象),一般不将其用作左值
https://www.cnblogs.com/KillerAery/p/12802771.html#%E5%B7%A6%E5%80%BC%E5%8F%B3%E5%80%BC
8.任何类都有构造函数、复制构造函数、析构函数、赋值运算符函数。
在类中,赋值运算符函数和复制构造函数如果没有定义,会默认生成的。
9.将用于输出的插入运算符函数operator<<设计成友元函数的根本原因是因为进行输出操作时需要访问对象的内部数据成员。
首先这个函数并不是重载<<操作符,如果不设计为友元函数,那么这个函数就是一个重载函数,我们知道这个重载函数一定有一个参数是this指针,也就是说左操作数一定是this指针,这样的话,我们就无法将要输出的数据输出到cout里面了。我再仔细解释下,<<会匹配他左边的值和右边的值作为左操作数和右操作数,然后这两个操作数传参到你重载的函数里面,由于你的参数有一个默认的this指针,因此他会被作为默认的左操作数,也就是说,如果匹配的不是这个类的对象,就报错了。所以你想输出到cout里,就必须设置为友元函数。

10.已知:int a=1;下列表示引用的方法中,正确的是( )
在这里插入图片描述
在这里插入图片描述
c是正确的
11.
11.在这里插入图片描述
析构函数没有返回类型,没有参数,没有重载,不能随意的调用,它是由系统自动调用的
12.在这里插入图片描述
基类构造函数、对象成员构造函数、派生类本身的构造函数
14.在这里插入图片描述
内联函数
15.选c在这里插入图片描述
在这里插入图片描述
16.在这里插入图片描述
在这里插入图片描述
17,在这里插入图片描述

18.指向字符串常量的指针C

在这里插入图片描述
19.A在这里插入图片描述
在这里插入图片描述
**

20.多个进程竞争,资源出现了循环等待C

**在这里插入图片描述
30.在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
31.
1.轮询法
2.源地址哈希法
3.随机法在这里插入图片描述
32.在这里插入图片描述33.关系型数据库:NoSQL Redis MongoDB在这里插入图片描述

34.1物理层,2数据链路层,3网络层,4传输层,5会话层,6表示层,7应用层
其中,网络层的主要功能是找对应的MAC地址,决定路由
在这里插入图片描述
35.mao矛盾关系在这里插入图片描述36.在这里插入图片描述
37.1,2,3没有4
在这里插入图片描述
38.异常就是运行时出现的不正常,例如运行时耗尽了内存或遇到意外的非法输入。异常存在于程序的正常功能之外,并要求程序立即处理。不能不处理异常,异常是足够重要的,使程序不能继续正常执行的事件。如果找不到匹配的catch,程序就调用库函数terminate。在这里插入图片描述
https://blog.csdn.net/zhy_cheng/article/details/8217896
c++异常处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值