C++面试题目

1.C++中的结构体与C中的结构体有什么区别?

《1》.C中的结构体里面不可以有函数;C++中的结构体中是可以有函数!
《2》.空的结构体,在C语言中占0字节;在C++中占1个字节;
原来链表封装: 结构体:数据域和指针域
然后在结构体外部封装了很多的函数来操作链表,都有把链表作为函数的参数。
C++中为了更好的表达面向对象的,引入了类!自定义的数据类型!

2.C++中的类与C++中结构体的区别?

《1》.结构体的关键字:struct,类的关键字是 class;
《2》.结构体中的成员默认权限是 public;类中的成员默认权限是 private!
《3》.结构体的初始化方式和类的初始化方式不同
类中的访问权限有3种
Public: 公有的 类的内部和类的外部都可以访问
Private: 私有的 类的外部是不可以访问
Protected:受保护的 类的外部是不可以访问

3.什么是深拷贝和浅拷贝

浅拷贝:
在这里插入图片描述
深拷贝:
在这里插入图片描述
什么时候进行深拷贝、什么时候进行浅拷贝:
当在构造函数中有对指针类型的数据成员进行动态开空间的时候,要进行拷贝,就要进行深拷贝。深拷贝的构造函数要自己去写!因为系统给我们提供的拷贝构造是浅拷贝构造函数!

4.new和malloc的区别

1.new是运算符,malloc是函数;
2.malloc返回值时void *需要进行强转,而new责不需要
3.malloc需要指定开辟的内存空间,new不需要指定空间大小
4.Malloc开辟空间用free释放,new用delete.

5.引用和指针的区别

1.指针变量可以选择是否初始化,引用一定要进行初始化.
2.指针变量指向地址可以更改,引用一旦初始化就不可改变.使用引用更加安全.
3.指针保存地址,引用是给变量起别名.
4.指针变量会分配内存空间,引用不需要内存空间.
5.引用可以弱化指针,可以实现和指针一样的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值