C++常见面试题

前言

作者:小蜗牛向前冲

名言:我可以接受失败,但我不能接受放弃

  如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正

下面主要是总结一下在C++常见面试题: 主要常用问答的方式回答,目的是了梳理回答思路,更好应对面试官的提问。

1、同学你知道大小端吗?你如何去写代码验证?

 答:

  • 大小端指的是计算机存储多字节序的顺序
  • 大端存储指的是高地址存放着低字节处低地址存放着高字节处
  • 小端存储是与大端存储相反(高地址->高字节,低地址->低字节)

比如数字0x12 34 56 78在内存中的表示形式

大端字节序:
低地址 --------------------> 高地址
0x12  |  0x34  |  0x56  |  0x78
小端字节序:
低地址 --------------------> 高地址
0x78  |  0x56  |  0x34  |  0x12

代码实现:

简单来说,取一个int 类型,比如0x1234,强制转换为char类型,讲能截断来拿到低地址处的一个字节,如果显示是0x12就是大端,0x34讲是小端。

//测试大小端
void test()
{
	int a = 0x1234;
	char b = static_cast<char> (a);//将int类型强制转化为char类型,方便判断存储位置取出前一个字节
	if (b == 0x12)
	{
		cout << "大端字节序" << endl;
	}
	else
	{
		cout << "小端字节序" << endl;
	}
}

 2、当我们给一个变量加上static关键字修饰会和原来有什么不一样?

答:

当变量在函数内部,类内部,全局变量,造成的影响是不同的。

  • 当在函数内部的变量被static修饰:

该变量的生命周期由局部变为整个程序的生命周期,也就是说当函数调用后被销毁,该变量会保留直到程序结束。

  • 当在类中的成员变量和成员函数:

当成员变量被生命为static的时候,该变量是对所有类的实例是共享的。

当static修饰成员函数的时候,成员函数没有了this指针,该函数即使没有类实例的情况也可以被调用。

  • 当类修饰的全局变量:

给全局变量的作用用域,限制为在本头文件下。

总结:总的来说对于static关键字修饰后的影响会和上下文的情况不同而不一样,但是他的核心影响是改变了变量的生命周期和作用域 。

3、类的构造函数可以是虚函数吗?为什么说析构函数必须声明为虚函数

答:

  • 构造函数肯定不能是虚函数:

构造函数是用来初始化对象的,在对象还没有完全构造完成之前,虚函数指针和虚表可能还没有被正确初始化。如果构造函数是虚函

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蜗牛~向前冲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值