- 说说框架与设计模式的区别
- 设计模式和框架针对的问题域不同.设计模式针对面向对象的问题域;框架针对特定业务的问题域
- 设计模式比框架更为抽象.设计模式在碰到具体问题后,才能产生代码;框架已经可以用代码表示
- 设计模式是比框架更小的体系结构元素.框架中可以包括多个设计模式
- 设计模式就像武术中基本的招式.将这些招式合理地纵组合起来,就形成套路(框架),框架是一种半成品.
- C++和C定义结构的分别是什么?
- C language 的结构仅仅是数据的结合
- C plus plus的struct 和 class 其实具备几乎一样的功能,只是默认的访问属性不一样而已。
- 构造函数可否是虚函数,为什么?析构函数呢,可否是纯虚的呢?
- 构造函数不能为虚函数,要构造一个对象,必须清楚地知道要构造什么,否则无法构造一个对象。
- 析构函数可以为纯虚函数。
- 拷贝构造函数相关问题,说说深拷贝,浅拷贝,临时对象分别是什么意思?
- 深拷贝意味着拷贝了资源和指针,而浅拷贝只是拷贝了指针,没有拷贝资源
- 这样使得两个指针指向同一份资源,造成对同一份析构两次,程序崩溃。
- 临时对象的开销比局部对象小些。
- 结合1个你认为比较能体现OOP思想的项目,用UML来描述。(最好这个项目继承,多态,虚函数都有体现)这个问题大概会占面试时间的一半,并且会问很多问题,一不小心可能会被问住)
- 使用一下以前用的mplsLdp的类
- 基类的有1个虚函数,子类还需要申明为virtual吗?为什么?
- 不申明没有关系的。
- 不过,我总是喜欢显式申明,使得代码更加清晰。
- C也可以通过精心封装某些函数功能实现重用,那C++的类有什么优点吗,难道仅仅是为实现重用。
- 并不仅仅是这样的。OOD,OOP从根本上改变了程序设计模式和设计思想,具备重大和深远的意义。【这点应该要再更详细的说明一下】
- 类的三大最基本的特征:封装,继承,多态.
- OOD: object-oriented design; OOP: object-oriented program
- C++特点是什么,如何实现多态?画出基类和子类在内存中的相互关系。
- 多态的基础是继承,需要虚函数的支持,简单的多态是很简单的
- 子类继承父类大部分的资源,不能继承的有构造函数,析构函数,拷贝构造函数,operator=函数,友元函数等等
- 为什么要引入抽象基类和纯虚函数?
- 主要目的是为了实现一种接口的效果。
- 代码重用,为以后的开发用户提供一个良好的接口
- 介绍一下模板和容器。如何实现?(也许会让你当场举例实现)
- 模板可以说比较古老了,但是当前的泛型编程实质上就是模板编程。
- 它体现了一种通用和泛化的思想。
- STL有7种主要容器:vector,list,deque,map,multimap,set,multiset.