C++常见知识点

1.const的用途?

        a.定义只读变量,即常量;

        b.修饰函数的参数和函数的返回值;

        c.修饰函数的定义体,这里的函数为类的成员函数,被const修饰的成员函数代表不修改成员变量的值。

2.指针和引用的区别?

        a.引用是变量的一个别名,内部实现是只读指针;

        b.引用必须进行初始化,并且不能进行改变;指针可以进行初始化也可以不进行初始化,并且其指向可以发生改变;

        c.引用不能为NULL,指针可以为NULL;

        d.“sizeof 引用” 表示求指向对象的大小;“sizeof 指针” 表示求指针本身的大小;

3.malloc/free与new/delete的区别?

        a.malloc只负责开辟空间,而new不只是负责空间的开辟,还负责初始化;

        b.malloc/free是函数,而new/delete为操作符;

4.多态:按照字面意思来说就是多种形态,在面向对象语言中,表示接口实现的不同方式;

5.堆和栈的区别?

        a.栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;

        b.堆区:一般由程序员分配释放,若程序员不释放,将产生不可预估的后果;

6.关键字static的作用?

        a.修饰局部变量:该变量的作用域就是该函数体,生命周期随进程;

        b.修饰全局变量:该变量的生命周期未发生改变,但是该变量只能作用于该文件中,不能被其他文件声明使用;

        c.修饰成员变量:该变量属于该类,并不属于具体的哪一个对象;

        d.修饰成员函数:该函数属于该类, 并不属于具体的哪一个对象,该函数只能操作类中的静态变量与静态函数;

        e.修饰普通 函数:该函数只能在该文件中被使用,不能被其他文件调用与使用;

7.在C++程序中调用C编译器编译后的函数,为什么要加extern "c"?

        a.C++中支持函数重载,C语言中不支持函数 重载,函数被C++编译器编译后在库中的名字与C语言的不同;

        b.为了解决此类名字匹配的问题,C++提供了C链接交换指定符号extern "C";

8.头文件中的ifndef的作用?

        a.防止头文件被重复包含;

9.进程间的通信 方式?

         管道、信号、共享内存、消息 队列、信号量、套接字、文件;

10.TCP与UDP的区别?

         a.TCP:面向连接、可靠的字节流服务(确认机制、超时重传等);

         b.UDP:用户数据包协议,无连接、不可靠;

11.TCP建立连接与断开连接?

         a.三次握手与四次握手的过程;

12.常见的算法?

         a.快速排序、堆排序、归并排序、冒泡排序、选择排序等;

13.静态链接与动态链接的区别?

         a.编译时导入与运行时导入的区别;

14.虚析构函数的使用?

         a.通过基类的指针删除派生类的对象时,基类的析构函数应该是虚的。负责其删除效果将无法实现;

         b.一般情况下,这样的删除只能删除基类对象,而不能删除子类对象,形成删除一半对象,从而造成内存泄漏。

15.C与C++的区别?

         a.C++在C的基础上添加类,C是一个结构化语言,它的重点在于算法与数据结构,C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理得到输出;而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

16.什么是面向对象?

         a.面向对象是一种对现实世界理解和抽象的方法、思想,通过将需求要素转化为对象进行问题处理的一种思想;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值