温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++面试易错语法特性有哪些

发布时间:2021-11-29 18:00:30 来源:亿速云 阅读:113 作者:iii 栏目:大数据

这篇文章主要讲解了“C++面试易错语法特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++面试易错语法特性有哪些”吧!

面试频率高的 C++ 语法特性:

for (int i = 0; i <= 10; i++) 中的 i 位于语句作用域

变量存储类型:自动,寄存器,静态,外部

引用是对象的另一个名字,主要作为函数形参使用

const 引用必须被定义为 const 类型

break 用于跳出最近的循环或 switch 语句

ifstream(input file stream)

ofstream(output file stream

在 C++ 中尽量避免使用指针和数组,用引用代替指针,vector 代替数组,string 代替 C 风格字符串

指向 const 对象的指针,指针指向的值不能改变:const int a = 10; const int *pa = &a;

const 指针,指针不能改变指向:int a = 0; int *const = &a;

返回指针的函数称为指针函数

C++ 中参数和返回值的传递方式:引用传递,值传递,指针传递

引用传递的是引用对象的内存地址

指针是一个实体,而引用仅是个别名

引用只能在定义时初始化,之后不可变,而指针可变

引用没有 const,指针有 const

引用不能为空,指针可以为空

引用不需要分配内存区域

sizeof(引用) = 变量内存大小,sizeof(指针) = 指针本身的内存大小

面向过程:程序 = 算法 + 数据

面向对象:程序 = 对象 + 消息,对象内部还是算法和数据

结构体用来处理较少的程序基础数据,而类用来处理复杂逻辑

含有纯虚函数的类成为抽象类(抽象接口)

派生类和基类共用静态成员

类的静态成员可以成为成员函数的可选参数

类的静态成员类型可以是所属类的类型

类的静态方法只能访问静态成员

多态性在 C++ 中通过虚函数和继承机制来实现

公有继承保持访问级别,保护继承 public 和 protected 都变为 protected 成员,私有继承全部变为私有成员

基类中的 private 成员不能被继承

调用复制构造函数:对象通过值传递传入函数体,对象通过值传递从函数返回,一个对象通过另一个对象初始化

C++ 支持函数参数个数不确定:int max(int num, ...)

在内联函数内不允许用循环和 switch 语句,如果存在则视为普通函数编译代码

程序中尽量少使用指针形参,会降低可读性

静态函数没有 this 指针

类的私有成员不可以被外部类访问,但是可以通过宏定义访问类的私有成员:#define private public,这是一种非常规手段

函数重载是指在相同的作用域中,具有相同的名称而形参列表不同的多个函数,返回值也可以不同,但不是必须的

STL 和 Boost 等都采用模板技术(大量使用了类模板),使用泛型编程

模板未使用前,编译器不会编译该模板,只有在模板被实例化时才生成相应类型的代码

STL 使用迭代器来遍历容器

STL 顺序容器:vector, deque, list

STL 关联容器:set(唯一元素的集合), multset(允许一个键对应多个实例), map(键-值), multimap(允许一个键对应多个实例)

begin 迭代器指向容器中的第一个元素,end 迭代器指向最后一个元素的下一个位置

不能存储 end() 迭代器的返回值,当进行插入或删除操作后,end() 所指向的元素可能不存在,迭代器失效,应该每次重新计算 end()

泛型编程:独立于任何特定类实现的方式编写代码,针对不同的类型提供不同的实现

如何实现泛型编程:模板技术,函数重载

感谢各位的阅读,以上就是“C++面试易错语法特性有哪些”的内容了,经过本文的学习后,相信大家对C++面试易错语法特性有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI