日常学习记录——C/C++面试知识点总结


1 技术面试知识点总结

1.1 大端格式小端格式

大端格式:数据的高字节存储在低地址中,数据的低字节存放在高地址中;
小端格式:数据的低字节存放在低地址中,数据的高字节存放在高地址中。
参考文献:大端格式、小端格式

1.2 重要的MFC

重要的MFC:
1、CWnd:窗口,它是大多数“看得见的东西”的父类,Windows里面几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口,比如视图CView、框架窗口CFrameWnd、工具条CMFCToolBar、对话框CDialog、按钮Button等。
2、CDocument:文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入)和OnSaveDocument(写盘),Serialize(序列化读写)。
3、CView:视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应等等)。最重要的是OnDraw(重画),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他应用消息。
4、CDialog:对话框。
5、CwinAPP:应用程序类。类似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立,最常用函数InitiInstance()初始化。
参考文献:重要MFC

2 C++基础面试知识点总结

参考文献:C++面试基础题

2.1 C++中指针参数的传递和引用参数的传递

1、指针参数传递:本质是值传递,传递的是地址值,被调函数的形参被作为被调函数的局部变量处理,会在栈中开辟空间,用来存放主调函数传入实参拷贝值,即实参的一个副本。故当形参的指向没有变化时,对所指向的操作既是对实参的操作,若形参指向改变,则无法操作实参。
2、引用参数传递:被调函数的形参也是作为被调函数的局部变量,会在栈区申请内存空间,但存放的时实参变量的地址,故而对形参的任何操作都会直接影响到实参,即可以通过栈中的地址找到实参变量。
3、两者不同:虽然两者都是被调函数栈空间上的一个局部变量,但是对于任何引用参数的处理,都会通过间接寻址的方式操作到实参,而指针参数的传递则是如果改变了被调函数中的指针地址,则形参的操作无法再影响到实参。因为引用对象的指向不可改,而指针的指向可以更改。

2.2 指针和引用的区别

1、指针和引用都是一种内存地址的概念,区别在于,指针是一个实体,而引用是一个别名。
2、指针:指针指向的是一块内存地址,所指向的内容是内存的地址,但指针所指向的值可以改变,允许拷贝和赋值。
3、引用:引用时一块内存的别名,引用必须再定义时绑定到一块内存上,即引用必须初始化,后续不可更改,也不能为空。
4、指针必须在解引用后才能对对象进行操作,而引用可以直击对对象进行操作。作为参数来说,指针实质上是值传递,传递的是地址值,而引用实质上是地址传递,传递的变量是地址值。

2.3 C和C++的区别

1、语法上:头文件和命名空间的不同,C++允许我们自定义自己的空间,而C不可以;在关键字方面也有不同,如C++在动态内存管理上增加了new和delete,在职镇上,C++增加了引用的概念,C++在关键字上,也增加了auto类型。
2、函数上:C++支持函数重载,而C不支持,主要原因是C++函数的名字修饰和C不同,C++在函数名字修饰时,会把参数加在后面,如int a(int b,char c)会修饰成_a_int_char,而C只会修饰成_a,所有C++中支持不用参数调用不同的函数,即支持函数重载;C++中还有虚函数的概念,用以实现多态。
3、结构体上:C的结构体像是一个数据结构的集合,而C++的结构体不仅有成员变量和成员函数,同时还增加了访问权限的概念。
4、C是面向过程的语言,而C++是面向对象的语言,C++在C的基础上增加了类的概念。

2.4 C++中重载、重定义的区别

1、重载:重载指的是函数重载或运算符重载,指同一访问区内,被声明的几个参数列表不同的同名函数,C没有函数重载,C++能实现重载,主要是C++中对函数名的修饰和C不一样,C++对函数名的修饰,会把函数的参数类型加到函数名中,从而使得在程序中函数名一样,但访问区中函数名不一样,返回值类型不能作为函数重载的依据。
2、重写:主要指派生类中重新定义父类中的除函数体外其他都完全相同的虚函数,重写的一定是虚函数,在子类中重写函数,其访问权限可以由程序员自己定义。
3、重定义:在派生类中,重新定义和父类名字相同的非虚函数,其参数列表和返回值都可以不同。则父类中的同名函数被子类所隐藏,如果想要调用父类中的同名函数,需要假设父类的作用域。


总结

面试总结:要对自己用过的工具和方法进行归纳和总结,尽量采用金字塔原理,解决问题一般是先分析推理,但事情做完了以后需要结论先行,要点突出,不要给听众造成困扰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值