本人对于找工作期间复习c++
对于本文的资料,都是自己总结以及网上收集,存在不严谨的地方请指出。。。。。。。谢谢!
1、为什么数组不可以引用?
答:因为引用是不会分配地址空间的,就是给变量取别名,但是定义数组是要分配空间的,所以C++规定不能对数组进行引用。
2、深拷贝与浅拷贝的区别?
答:深拷贝就如B复制A,B发生改变,A不会发生改变。
浅拷贝就如B复制A,B发生改变,A也会发生改变。
浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间。
深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。
3、重载与重写?
重载:就是函数名相同,函数参数列表不同。
重写:子类继承父类,对父类函数重新定义。
4、const char *p:指针的指向可以改变,但是指针的内容不可以改变
char * const p:指针的指向不可以改变,但是指针的内容可以改变
const char * const *p;指针的指向与内容都不可以改变
总结:const在的后面,表示指针的指向可以改变,const在的前面,表示指针指向的内容可以改变。
5、进程间的通信方式?
答:管道(有名管道和无名管道)、信号、信号量、socket、消息队列和共享内存
6、封装、继承和多态的理解?
封装:就是将抽象得到的数据和行为相结合,形成类
继承:就是新类从旧类哪里得到已有的属性和方法,同时也可根据自己需求增加新的属性和行为。
多态:一个接口,多种方法。如同一接口,可以实现不同的方法。
7、如何设置字节对齐?
#pragma pack(push,2) //相当于 #pragma pack(push) #pragma pack(2) //设置2字节对齐
struct A{
…
};
#pragma pack(pop)
8、并发、并行、同步、异步的区别?
并发:同一段时间内,处理多个程序。
并行:同一时刻具有处理两个及两个以上的事件。
同步:处理某个操作时,只有将操作执行完后,才会去执行下一步操作。
异步:异步程序在调用后,在没有的到结果之前,调用者就可以执行下一步操作。
9、常变量以及常函数?
常变量:就是恒定的值,不可以发生改变。如:const int a = 3.
常函数:就是在函数的头加上const。
10、析构函数可以是虚函数么?
答:如果这个类有子类,则析构函数就必须是虚函数,因为在析构子类指针类型的时候,可能不会调用析构函数。
11、c++是不是类型安全?
答:不是。因为不同类型存在强制转换。
12、引用和指针的区别?
答:引用必须初始化、不能为空,且引用赋值后不能修改。
但是指针指向一个对象后,对其操作也是间接对变量的操作,而引用只是对象的别名。
#特别声明:若发现在哪里有重复的资料,这是很正常,因为我也是初学者,有些地方也是借鉴加上总结,所以不要见怪。发表这篇文章,主要是方便自己后面复习查看的。。。。。
谢谢!!!!