面试题目
秋招不是很顺利,原因可能有投的晚了、HC 少、准备不够充足。之前面试题目也是零散地看,看到多少算多少,现在准备稍微总结一下,也方便之后复习。
语言
面向对象编程的主要特点
面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将程序设计中的对象作为程序的基本单元,通过对象之间的交互来实现程序的功能。
面向对象编程的主要特点包括:
封装:将数据和操作数据的方法封装在一起,形成一个独立的对象。通过封装可以隐藏对象内部的实现细节,使对象的外部只能通过规定的接口来访问对象。
继承:一个类可以从另一个类继承属性和方法,从而减少代码的重复编写。通过继承可以形成类之间的层次结构,使类可以共享公共属性和方法,同时保留自身的特殊属性和方法。
多态:同一个操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。通过多态可以使程序具有更高的灵活性和适应性,可以在运行时动态地选择执行的方法。
抽象:将现实世界的事物抽象成程序中的对象,通过对象之间的交互来实现程序的功能。通过抽象可以将程序中的对象与实际的事物进行映射,使程序的设计更加清晰、简洁、可读。
总之,面向对象编程的主要特点是封装、继承、多态和抽象,它将程序设计中的对象作为程序的基本单元,通过对象之间的交互来实现程序的功能。
智能指针
智能指针是一种用于资源管理的C++类,在内存管理方面提供自动化和安全性。智能指针管理的资源可以是动态分配的内存、文件、网络连接或任何需要释放或关闭的资源。它通过使用引用计数或其他内部算法来追踪资源的使用情况,并在没有任何活动对象指向该资源时自动释放或关闭它。智能指针的常见类型包括unique_ptr,shared_ptr和weak_ptr。