C/C++笔试题汇总05

本文汇总了C/C++的基础概念和核心特性,涵盖面向对象思想、函数指针、对象特性、多态实现、内存管理、继承访问、内存分布、构造析构函数、进程线程、库函数使用以及通讯方式等内容,是C/C++程序员面试的必备知识点。
摘要由CSDN通过智能技术生成

目录

1、什么是面向对象思想?什么是面向过程思想? 

2、函数指针变量和指针函数是什么?

3、对象的三大特性?

4、多态如何实现?

5、const和static的区别?const char*p和char* const p的区别?

6、为什么会产生内存泄露?如何预防内存泄露?

7、在没有继承的情况下,如何让对象B,间接访问对象A的私有成员?

8、C语言程序内存分布有哪些?

9、假设有基类A和其派生类B,构造函数的调用顺序以及析构函数的调用顺序

10、构造函数有虚构造函数吗?为什么?析构函数有虚析造函数吗?为什么?

11、虚析构函数有什么作用?

12、进程和线程的区别

13、多进程和多线程的优缺点

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的相关接口访问,或者使用友元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值