这篇文章记一下当时准备面试总结的面试题目~
1,new和malloc的区别
1)malloc/free是c++的标准库函数,new/delete是c++的运算符,都可用于申请动态内存和释放内存。
2)malloc()只是分配了内存,而new则更进一步,不仅分配了内存,还调用了构造函数进行初始化。
2,C++的特性
1)封装:就是把客观事物封装成抽象的类
2)继承:使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展
3)多态:一个接口,多种方法。程序在运行时才决定调用的函数
3,析构函数的概念
1)是类的一种特殊的成员函数,会在每次删除所创建的对象时执行,在跳出程序前释放资源。
e.g: 类的名字是line 对应析构函数是~line()
2)子类父类调用析构函数的顺序:
先构造父类子类,再析构子类父类
4,i++和++i的区别
1)i++是先返回i再将i加一,++i是先将i加一再返回i。
2)++i可以作为左值,i++不行,因为其返回的是一个临时变量。
5,C++11新特性
1)类型推导
2)右值引用
3)智能指针
6,常见数据类型
int 4B
float 4B
double 8B
7,STL(Standard Template Library )标准模板库
是C++提供的一个包含了大量模板类和模板函数的集合
e.g:
#include
vector v;
v.push_back(2);
8,智能指针
设置一个引用计数来统计被引用次数,当为0时自动释放动态分配的对象
9,static关键字的作用
1)修饰局部变量:可以使得局部变量在整个程序周期内保持存在,而不需频繁的创建和销毁
2)修饰全局变量:可以使全局变量的作用范围局限在声明他的文件内
10,const关键字的作用
1)对变量:定义变量为常量,不可修改
2)对指针:const在*的左边,指针指向变量的值是常量;const在 *的右边 指针本身是常量(左值右指)
3)对函数:const定义的函数可以访问const和非const成员变量,但是不能修改变量的值
4)对对象:const定义的对象只能访问对象中的const成员函数
11,extern关键字的作用
用来在一个文件中声明另一个文件中定义的全局变量或全局函数
12,虚函数以及动态绑定
1)虚函数:是用virtual声明的函数,在子类中重新定义基类中的虚函数时,会告诉编译器不要静态连接到该函数
e.g.:virtual int area()
2)动态链接:程序可以根据所调用的对象类型来选择调用的函数
3)静态链接:函数调用在程序运行前就已经执行好了
13,C++内存管理
1)栈: 用来存储函数参数以及局部变量。向下生长,空间小。
2)堆:用来存储new分配的内存块,需要手动delete释放。向上生长,空间大,灵活。
14,指针和引用的区别
1)指针指向一块内存,他的内容是这块内存的地址
e.g: int *m = &n; 表示指针变量m的内容是n的地址
2)引用是一块内存的别名
e.g: &m = n 对m的操作就是对n的操作
15,struct和class的区别
1)在C++中struct声明的成员默认是public类型的;
2)而class声明的成员默认是private类型的。
16,git的概念
是最先进的分布式版本控制系统
1)在git里面提交自己的信息:
确保在git配置文件中配置好:
2)git的基本原理
a,Workspace:工作区,就是你平时存放项目代码的地方
git add .
b,Index / Stage:暂存区,用于临时存放你的改动
git commit
c,Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
git push
d,Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
3)自己搞了一个gitee账号 并生成了本机的SSH
4)工作中的应用
//递交
git add. //将本次所有修改的添加到暂存区
git commit -m"" //将本次修改添加到本地仓库 引号里面是介绍内容
git push origin master //将代码添加到远程仓库
//拿取
git pull origin 远程分支名 //将远程最新代码和我的合并一下
17,LINUX常用命令
1)df
看磁盘占用情况
2)top
动态查看当前运行的进程状态
(静态查看用ps)
3)free
查看系统内存占用情况
4)查看和改变文件权限
①查看文件详细信息 可使用ls -l
r:可被读(对应4)
w:可被写(对应2)
x:可被执行(对应1)
-:(对应0)
②修改文件权限
如要将一个文件test.txt的权限改为
自己 同组用户 其他用户
rw- rwx r–
命令为:
chmod 674 test.txt
5)新建一个文件
cat>>test.txt
先输入文件内容,用ctrl+D退出
18,项目内容