C++笔试题day15

虚函数就不能内联,题目错了
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
方法重写的时候,子类的访问权限要大于父类的
在这里插入图片描述
int a = b = c = 10这样bc都没定义,a=b=c这样赋值是没问题的。所以不要图方便,乖乖int a; int b;
在这里插入图片描述
数字不超过3位,字符不超过1位
在这里插入图片描述

在这里插入图片描述
++操作符只能用于变量,因为a++返回的是5,所以不能对5做++操作
在这里插入图片描述
常量成员和引用成员必须要初始化,问题就在这static成员
static成员是不允许在类内初始化的,除了const,那么static const 成员是不是在初始化列表中呢?
答案是NO
一是static属于类,它在未实例化的时候就已经存在了,而构造函数的初始化列表嘞,只有在实例化的时候才执行。
二是static成员不属于对象。我们在调用构造函数自然是创建对象,一个跟对象没直接关系的成员要它做什么呢
在这里插入图片描述
在这里插入图片描述
static_cast支持向上和向下,即使向下不安全,不能用于无关类的转换。但是可以用void*做媒介
在这里插入图片描述
在这里插入图片描述
注意:

符号位:0代表正数,1代表负数。
计算机中加减运算均使用补码。
分析:
int
int 为有符号整数,以 32 位存储,因此1的二进制表示为:

1
00000000 00000000 00000000 00000001
1<<31
将所有数整体向左移31位,溢出的数直接舍去,右侧补0。即:

1
10000000 00000000 00000000 00000000
()>>31
将所有数整体向右移31位,左侧补符号位数字。即:

1
11111111 11111111 11111111 11111111
1^()
异或运算,得

1
11111111 11111111 11111111 11111110
此时符号位为1,代表次数为负数。因为计算机中加减运算使用的都是补码,所以不能直接将补码形式二进制数通过除二取余法转换为十进制数。要先将补码转换为原码,再通过除二取余法转换为十进制数。

负数补码转换为原码步骤:

补码-1,得反码:
1
11111111 11111111 11111111 11111101
反码除符号位其余位取反,得原码:
1
10000000 00000000 00000000 00000010
最后,将原码使用除二取余法转换为十进制数,为-2。
故选C。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值