C++知识点问题总结
来源:互联网 发布:淘宝拖动滑块完成验证 编辑:程序博客网 时间:2024/06/06 00:39
语言面试题目类型:
1.对C++关键字的理解程度
比如:哪四个与类型转换相关的关键字,这些关键字有什么特点,应该在什么场景下使用?sizeof关键字?一个空类?只含有析构函数和构造函数的类?析构函数为虚函数的类?
2.C++拷贝构造函数的参数必须为引用类型
起作用并不是为了减少一次内存拷贝,而是为了避免拷贝构造函数无限制的递归下去。
3.容器:容器,序列容器,关联容器
deque,list,queue,priority_queue,stack,vector,map,multimap,set,multiset,bitset,
c++11:forward_list,unordered_map,unoredred_set,unordered_multimap,unordered_multiset.
4.malloc 与new的区别:
答案
1:new 返回指定类型的指针,并且可以自动计算所需要大小,malloc 则必须要由我们计算字节数,并且在返回后强行转换为实际类型的指针
2: malloc 只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。除了分配及最后释放的方法不一样以外,通过malloc或new得到指针,在其它操作上保持一致。
5.多重继承:
虚基类:为了解决二义性,由类A,类B1和类B2以及类C组成了类继承的层次结构。在该结构中,类C的对象将包含两个类A的子对象。由于类A是派生类C两条继承路径上的一个公共基类,那么这个公共基类将在派生类的对象中产生多个基类子对象。如果要想使这个公共基类在派生类中只产生一个基类子对象,则必须将这个基类设定为虚基类。 另外,C++在基类是虚的时,禁止信息通过中间类自动传递给基类,编译器必须在构造派生类对象之前构造基类.
class A{};class B: virtual public A{};class C: virtual public A{};class D: public A,public B{};
多重函数导致函数调用的二义性。
解决方法:1.使用作用域解析运算符来澄清编程者的意图;
D d;d.B::singer();2.在子类中重新定义函数。
6.C++中的vector存在哪里?
vector map set等标准容器默认都是使用内存分配器模板类allocator管理内存的分配、释放。allocator调用new/delete操作符进行批量的内存分配。
推荐书籍:
1.<<Effictive C++>>
2.<<C++ primer>>
3.<<Inside C++ Object Model>
4.<<The C++ Programming Language>>
- C语言知识点总结
- C语言知识点总结
- C/C++ 知识点总结
- C语言知识点总结
- C语言知识点总结
- c知识点总结
- C语言知识点总结
- c知识点总结
- C语言知识点总结
- Objective-C 知识点总结
- C/C++ 知识点总结
- C语言知识点总结
- c语言知识点总结
- Objective-C知识点总结
- C语言知识点总结
- c知识点总结大全
- C语言知识点总结
- 【c++】c++知识点总结
- 马毅老师讲座收获总结
- Java语言基础——进制
- UE4蓝图制作VR漫游
- C语言结构体内存分布
- 函数
- C++知识点问题总结
- hdoj 1318(Palindromes)
- Android Support Library各版本区别
- 图数据库浅谈
- 网络编程
- 算法题目--顺时针打印矩阵
- json
- P104-105代码中变量之间的关系
- 小菜鸟从0基础开始学Linux系统