c++知识点 您所在的位置:网站首页 190mm多少英寸 c++知识点

c++知识点

2023-07-03 17:01| 来源: 网络整理| 查看: 265

1、NULL和nullptr的区别

为了避免产生野指针,都会给指针初始化为NULL,而如果源码是c++程序NULL是0,是c程序NULL就是(void*)0,因为在c++中void无法隐式转换为其他类型的指针,所以用0来代替(void)0。但是c++中NULL在函数重载时,NULL和0无法区分:

#include using namespace std; void func(char *p) { cout func(NULL); // 想要调用重载函数 void func(char *p) func(250); // 想要调用重载函数 void func(int p) return 0; } //输出结果是 //void func(int p) //void func(int p) //c++中NULL和0是等价的

因此c++11中添加了nullptr来隐式转换不同的指针类型

2、c++中static的作用

主要作用:修饰局部变量、修饰全局变量、修饰函数、修饰成员变量、修饰成员函数 (1)修饰局部变量 static修饰局部变量时,使得局部变量成为静态变量,存储在静态区,静态区的生命周期和程序相同,在main函数之前初始化,在程序退出时销毁,无论是局部静态还是全局静态 (2)修饰全局变量 全局变量本身就在静态区,被static修饰的全局变量只能在该函数定义的文件或者包含该函数定义的文件中被调用访问 (3)修饰函数 static修饰函数使得函数只能在该函数定义的文件或者包含该函数定义的文件中被调用,对于静态函数,声明和定义需要放在一个文件中 (4)修饰成员变量 用static修饰类的数据成员使其成为类的全局变量,会被类的所有对象共享,包括派生类的对象,因此static成员必须在类外初始化,而不能在构造函数中初始化 (5)修饰成员函数 用static修饰成员函数,使这个类只存在这一份函数,所有对象共享该函数,不含this指针,只能访问类的static成员变量 (6)最重要的特性:隐藏 在同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,其他的源文件也能访问,利用static隐藏特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突

3、tcp连接过程有几种状态

(1)LISTEN:监听来自远方tcp端口的连接请求状态 (2)SYN-LISTEN:发送连接请求后等待匹配的连接请求状态 (3)SYN-RECEIVED:收到和发送给一个连接请求后等待对连接请求的确认 (4)ESTABLISHED:代表一个打开的连接,数据可以传送给客户 (5)FIN-WAIT-1:等待远程tcp的连接中断请求,或者先前的连接中断请求的确认 (6)FIN-WAIT-2:从远程tcp等待连接中断请求 (7)CLOSE-WAIT:等待从本地用户发来的连接中断请求 (8)CLOSEING:等待远程tcp对连接中断的确认 (9)LAST-ACK:等待原来发向远程tcp的连接中断请求的确认 (10)TIME-WAIT:等待足够的时间-确保远程tcp接受到连接中断请求的确认 (11)CLOSED:没有任何连接状态

4、socket编程中recv的错误码

(1)EAGAIN:套接字已标记为非阻塞,而接收操作被阻塞或者接收超时 (2)EBADF:socket不是有效的描述符 (3)ECONNNREFUSE:远程主机拒绝网络连接 (4)EFAULT:内存空间访问出错 (5)EINTR:操作被信号中断 (6)EINVAL:参数无效 (7)ENOMEM:内存不足 (8)ENOTCONN:与面向连接关联的套接字尚未被连接上 (9)ENOTSOCK:socket索引的不是套接字

5、new和malloc的区别

(1)new是关键字,malloc是函数 (2)new申请内存无需指定内存大小,new会调用构造函数,malloc必须计算申请的字节大小 (3)new分配成功返回一个对象类型指针,malloc返回是void*类型 (4)new可以重载,malloc不能重载 (5)new在自由存储区分配内存,malloc在堆上分配内存

6、重载和重写的区别

(1)重载是定义相同的函数名,参数不同,重写是子类重写父类的方法 (2)重载在一个类中,重写是父类和子类之间的 (3)重载对返回类型没有要求,重写要求返回类型必须相同 (4)重载的参数个数,参数类型,参数顺序可以不同,重写父子方法参数必须相同

7、实现重载有几种方式

(1)参数个数不同的重载 (2)参数类型不同的重载 (3)参数顺序不同的重载 (4)参数缺省的重载 (5)模板也算是一种重载



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有