面试常见问题

1.char指针和int指针的区别?

相同点:
char型指针和int型指针,指针变量本身都是占4个字节的内存空间,可以通过sizeof(char*)或者sizeof(int*)来得到占用的字节空间数,存放的都是一个32位的地址值。
不同:
char指针类型和int指针类型在做算术运算的时候,地址值的变化是不一样的。

2.TCP 和 UDP 的区别?

a.UDP 是用户数据报协议的英文缩写词,TCP 是传输控制协议的英文缩写词。

b.综上所述UDP是无连接的,而TCP是面向连接的。

c.UDP支持一对一,一对多以及一对全的通信;TCP仅支持单播,也就是一对一的通信。

d.UDP面向应用报文的,TCP面向字节流的。

e.UDP适用于实时应用,例如IP电话、视频会议等;TCP适用于要求可靠传输的应用,例如文件传输。

f.UDP用户数据报首仅8个字节;TCP报文段首部最小20个字节,最大60个字节。

3.为什么TCP能保证数据的传输准确?

能够保证TCP协议可靠的算法有检验和连接管理机制ACK应答机制快速重传和超时重传机制滑动窗口机制拥塞控制机制,这些机制共同保证TCP协议的可靠性。

TCP协议如何保证数据可靠性_nZk丶的博客-CSDN博客_tcp如何保证数据传输的可靠性

4.虚函数的作用以及实现原理?

作用:实现多态

原理:虚函数表、虚函数指针

5.创建的对象有几种方式,有什么区别?

a.不用new,这个是在栈上创建一个类对象 程序退出其作用域后自动调用类的析构函数

b.用new,这是在堆上创建一个对象,必须手动调用析构函数

6.什么是构造函数?什么是this指针?什么是抽象类?

a.“构造函数”就是一类特殊的成员函数,其名字和类的名字一样,并且不写返回值类型

b.this指针是类“成员函数”第一个隐藏的参数,该指针指向调用成员函数的对象(当前对象)

c.被abstract修饰的类,称为抽象类;抽象类不能被实例化,即不能使用new创建一个对象
只能被继承

7.什么是封装,继承,多态?

封装:将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系。

继承:子类可以拥有父类的属性和方法;

多态:以说是“一个接口,多种实现”或者说是父类的引用变量可以指向子类的实例,被引用对象的类型决定调用谁的方法,但这个方法必须在父类中定义

8.什么是面向对象编程的开放封闭原则?

对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。

对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

9.内联函数与宏的区别

相同点:
(1)二者都是通过将函数调用替换成完整的函数体,相比函数调用的时间、空间开销而言,二者提高了效率。

不同点:
(1)宏定义不是函数,而内联函数是函数,因此内联函数可以调试,宏定义不能。
(2)宏定义的代码展开阶段是预处理阶段,而内联函数在编译阶段,因此内联函数有类型安全查,宏定义没有
(3)内联函数作为类的成员函数时,可以访问类的所有成员(公有、保护、私有),宏定义不能。

10.线程间的通信?

互斥锁,条件变量condition_variable,信号量,读写锁

11.qt 创建多线程的方法?

其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值