| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++ 面试题汇总 -> 正文阅读 |
|
[C++知识库]C++ 面试题汇总 |
1.C与C++的区别① C是面向过程的语言,而C++是面向对象的语言。 ② C和C++动态管理内存的方法不一样,C是使用malloc、free函数,而C++不仅有malloc/free,还有new/delete关键字。 ③ C中的struct和C++的类,C++的类是C中没有的,C中的struct可以在C++中等同类来使用,struct和类的差别是,struct的成员默认访问修饰符是public,而类默认是private。 ④?C++支持重载,而C不支持重载,C++支持重载在于C++名字的修饰符与C不同,例如在C++中函数 int f(int) 经过名字修饰之后变为_f_int,而C是_f,所以C++才会支持不同的参数调用不同的函数。 ⑤?C++中有引用,而C没有。 ⑥ C++全部变量的默认连接属性是外连接,而C是内连接。 ⑦?C中用const修饰的变量不可以用在定义数组时的大小,但是C++用const修饰的变量可以。(如果不进行&,解引用的操作的话,是存放在符号表的,不开辟内存) ⑧?C++有很多特有的输入输出流。 2.深拷贝和浅拷贝的区别1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的;但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象,所以,此时,必须采用深拷贝。 2)深拷贝与浅拷贝的区别就在于深拷贝会在堆内存中另外申请空间来储存数据,从而也就解决了指针悬挂的问题。简而言之,当数据成员中有指针时,必须要用深拷贝。 3.指针和引用的区别①、指针有自己的一块空间,而引用只是一个别名。 ②、使用sizeof查看一个指针大小为4(32位),而引用的大小是被引用对象的大小。 ③、指针可以是NULL,而引用必须被初始化且必须是对一个以初始化对象的引用。 ④、作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引用的修改都会改变引用所指向的对象。 ⑤、指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能被修改。 ⑥、指针可以有多级指针(**p),而引用只有一级。 ⑦、指针和引用使用++运算符的意义不一样。 4.什么是面向对象,面向对象的三大特征是什么?面向对象:面向对象是一种对现实世界的理解和抽象的方法、思想,通过将需求要素转化为对象进行问题处理的一种思想。 面向对象的三个基本特征是:封装、继承、多态。 5.static关键字的用法①静态全局变量 ????????未初试化的话会被自动初始化为0; ????????静态全局变量在全局数据区分配内存; ????????静态全局变量在作用域是在本文件内,所以在其他文件中无法被使用 ②?静态局部变量 ????????静态局部变量在全局数据区分配内存; ????????静态局部变量只会被初始化一次(如果没有显示初始化也会被初始化为0); ????????其作用域外无法使用,但是程序再次进入其作用域其值是上次退出时保持的值 ③静态函数 ????????函数返回值类型前加上static关键字之后就被定义为了静态函数。 ????????其特点只有一点,其 ④类的静态数据成员 ????????类的静态数据成员也是放在全局数据区; ????????为类的所有对象共有,实际上在对象产生之前类的静态数据成员就存在了。 ????????类的静态数据成员有两种访问形式:<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>? ????????静态数据成员不会和程序中的其他全局变量名字冲突。 ⑤类的静态函数成员 ????????类的静态函数成员和类的静态数据成员一样都是类的一部分,不属于某一个对象; ????????类的静态函数成员无法访问类的某个对象的非静态数据成员和非静态函数成员。 ????????类的非静态函数成员可以访问类的静态数据和静态函数; ????????如果在类体外定义函数的话,就不能指定static了。 6.const关键字的用法7.什么是函数重载8.创建的对象有几种方式,有什么区别9.什么是构造函数10.什么是this指针11.抽象类是什么12.什么是封装、继承、多态13.私有继承,保护继承和公有继承的区别14.友元函数15.new和delete16.C++ STL容器有哪些17.什么是面向对象编程的开放封闭原则?18.内联函数与宏的区别19.虚函数和纯虚函数的区别20.全局变量和局部变量如果重名会怎样 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:26:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |