目录
5、const和static的区别?const char*p和char* const p的区别?
7、在没有继承的情况下,如何让对象B,间接访问对象A的私有成员?
9、假设有基类A和其派生类B,构造函数的调用顺序以及析构函数的调用顺序
10、构造函数有虚构造函数吗?为什么?析构函数有虚析造函数吗?为什么?
14. 请说明库函数strcpy和memcpy不同之处或用法
15. 同步通讯和异步通讯有什么区别?UART SPI和I2C分别属于什么类型的通讯方式
1、什么是面向对象思想?什么是面向过程思想?
(1) 面向过程的思想就是分析出解决问题所需要的步骤,然后用函数把步骤一步一步实现。
(2) 面向对象的思想就是将构成问题的事物分解为若干对象,使用对象的各种行为来解决问题。
2、函数指针变量和指针函数是什么?
函数指针变量就是类型为某个函数的指针变量,指针函数是返回值为指针的函数
3、对象的三大特性?
封装性,继承性,多态性
封装性就是将客观事物封装成类,每个类对自身属性和方法进行隐藏保护或公开。
继承性就是将基类的属性或方法继承到派生类,使得派生类可以拥有这些属性或方法。
多态性就是将父类对象设置成为和一个或更多它的子对象相等的技术。用子类对象给父类对象赋值之后,父类对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
4、多态如何实现?
分为静态多态和动态多态...
静态多态是指在程序编译期间确定了程序的行为,比如:函数重载
动态多态是指在程序运行期间,根据具体拿到的类型确定程序的具体行为,调用具体的函数,比如:虚函数
5、const和static的区别?const char*p和char* const p的区别?
const一般而言表示将一个变量设置为只读,在C++中可以表示为某个函数不会修改类成员的值。static表示修改一个局部变量的生存期或全局变量的作用域。在C++中可以表示某个类的静态成员或函数。
6、为什么会产生内存泄露?如何预防内存泄露?
内存泄露指的是程序在运行过程中系统申请了内存资源后没有释放掉,导致系统内存资源不断减少的情形。产生内存泄露的原因是多样的,包括直接内存申请后未能及时释放、调用了包含内存申请的接口后未做释放处理等,程序出现内存泄漏的BUG会导致系统可用内存减少,响应变慢,最终系统无法运行。
7、在没有继承的情况下,如何让对象B,间接访问对象A的私有成员?
使用A的相关接口访问,或者使用友元