1、虚析构
delete基类指针指向派生类时防止子类的数据不会被释放造成内存泄漏
当父类指针指向子类时,只会调用父类析构函数,子类析构函数不被调用,会造成内存泄漏
将父类的析构函数定义为虚析构函数,那么父类指针会先调用子类析构,再调用父类析构,使内存得到释放

静态库和动态库在运行期某变量发生变化,调用者能否感知
静态库是在编译期进行连接,相当于拷贝了一份代码,特点是程序在运行时与函数库再无瓜葛,移植方便,
缺点是浪费空间和资源,因为所有相关得目标文件与牵涉到得函数库被链接合成一个可执行文件,程序得更新
、部署和发布也会带来麻烦。
动态库把对一些库函数的链接载入推迟到程序运行时期,可以实现进程之间的资源共享(因此动态库也称为共享库)
,将一些程序升级变得简单。

由此可见运行期改变静态库中的变量,调用者不会感知到,因为使用的是拷贝的那一份。

2、跨线程的信号槽
connect用于连接qt的信号和槽,在qt编程过程中不可或缺。它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置。

Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnection类型。

Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,槽函数运行于信号发送者所在线程。效果看上去就像是直接在信号发送位置调用了槽函数。这个在多线程环境下比较危险,可能会造成奔溃。

Qt::QueuedConnection:槽函数在控制回到接收者所在线程的事件循环时被调用,槽函数运行于信号接收者所在线程。发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。多线程环境下一般用这个。

Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在线程会阻塞,直到槽函数运行完。接收者和发送者绝对不能在一个线程,否则程序会死锁。在多线程间需要同步的场合可能需要这个。

Qt::UniqueConnection:这个flag可以通过按位或(|)与以上四个结合在一起使用。当这个flag设置时,当某个信号和槽已经连接时,再进行重复的连接就会失败。也就是避免了重复连接。

QObject::connect()本身是线程安全的。槽函数一般是不安全的。

3、多态的应用

重载、继承、模板,重点介绍模板

模板:

template <typename T>
void swap(T &a, T &b)
{T temp = a;a = b;b = T;
}

template告诉编译器开始泛型编程,typename告诉编译器T是一个泛型类型

调用:自动推导调用 swap(a, b),具体类型显示调用 swap<int>(a, b)

有返回值的函数模板

template <typename T1, typename T2, typename T3>
T1 add(const T2 &a, T3 &b)
{T1 temp;temp = static_cast<T1>(a + b);return temp;
}

调用

int a = 1;
float b = 0.1;
cout << add(a + b) << endl; //编译时会报错,因为没有指定返回值类型
cout << add <int>(a + b) << endl; //指定了返回类型为int
cout << add <float, int, float>(a + b) << endl; //指定类返回类型为float

有以上代码可见,<>中指定的类型,是按照模板中的顺序对应的,即T1,T2,T3,参数类型可以自动推导,可以缺省。

4、const不同位置的作用

const用于修饰常量,修饰距离它最近的对象。

const int* p;//p是一个指向int型常量的指针int* const p;//p是指向int型的常量指针const int size() {} //返回值是int型常量int size() const {} //函数执行过程中不改变函数内变量的值,为了安全,防止数据无故被改int add(const int &a, const int &b) //a,b是常量引用,函数执行过程中不可修改a,b的值int add(const int a, const int b) //形参a,b是常量

5、通讯中的序列化和反序列化

6、json的序列化原理

7、UDP和TCP

QT、C++面试中的几个问题相关推荐

  1. java面试时候算法题多吗_java程序员面试中最容易被问到的18个算法题(附答案!)...

    作者:cpp软件架构狮 链接:https://www.toutiao.com/i6618515311836529156/ (点击阅读原文前去围观) 算法是比较复杂又基础的学科,每个学编程的人都会学习大 ...

  2. Python培训常识:Python面试中常被问到的几种设计模式要知道

    学习Python技术大家都是为了日后能够找到适合自己的工作岗位,那么除了要学习好Python技术外,对于面试环节的问题也要有所了解,本期小编为大家介绍的Python培训教程就算关于Python面试中常 ...

  3. 如何在一场面试中展现你对Python的coding能力?| 技术头条

    点击上方↑↑↑蓝字关注我们~ 作者 | wLsq 来源 | Python数据科学(ID:PyDataScience) 如果你已经通过了招聘人员的电话面试,那么下面正是该展现你代码能力的时候了.无论是练 ...

  4. 免费 | 程序员如何在面试中避免被坑?今晚告诉你!

    有时候满怀信心去面试 却被面试官狠狠虐走 有时在面试中感觉发挥很好 却被告知不符合要求 如何避免? 有时候不是因为你不优秀 导致最终没有拿到那个offer 有时候是被很多因素影响 甚至还留下了不好的面 ...

  5. 从60多场技术面试中,我总结了这份面试经验

    选自 | freecodecamp   作者 | Uduak Obong-Eren 转自 | 机器之心   参与 | Panda 如果你致力于成为一名软件工程师或数据科学家,技术面试往往是求职过程中的 ...

  6. Mysql高级调优篇——第五章:Sql调优在面试中深度剖析

    上节讲了Sql调优实战,本章聊聊面试中Sql调优深度的剖析场景! 在讲之前我们先做一些准备工作,建立一些需要用到的表: Mysql高级调优篇表补充--建表SQL_风清扬逍遥子的博客-CSDN博客⭐️t ...

  7. 反射 字段_详解面试中常考的 Java 反射机制

    反射(Reflection) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性和方法. 反射是一项高级 ...

  8. js判断数组中重复元素并找出_面试中常遇见的数组去重

    导读 JS数组去重是面试中并不少见的问题,听起来很简单,当你兴高采烈地回答了你的方法之后,你以为这道题就结束了吗?No,一般来说,面试官会继续问你"除了你刚刚说的方法,还有其他更好的方法吗? ...

  9. 聊聊算法在面试中的地位

    前段时间,有一位好友找到我,向我打听阿里社招笔试是否看重算法题的考察,我给予了肯定的答复.他表现的有些沮丧,表示自己工程底子很扎实,框架源码也研究地很透彻,唯独算法能力不行,leetcode 上的简单 ...

  10. 面试中多说这么一句话,薪水直接涨5k

    2021年金三银四马士兵教育全方位为大家打造了一堂<金三银四Java面试突击训练营> 主要解决小伙伴们的这些问题: 跳槽涨薪.优化简历.增加面试机会.搞定技术面.搞定HR面 直播列表: 第 ...

最新文章

  1. Benefits and limitations of genome-wide association studies GWAS--益处和局限性
  2. tomcat日志切割
  3. JDBC-Statement 对象
  4. 怎么把分钟转化成秒_自定义简洁大方的Latex Beamer theme(主题) 及如何用 Vim 3分钟制作一个幻灯片...
  5. 2018年香港私楼落成量达2.1万个 创14年新高
  6. 包邮送50本畅销书,涵盖Python、数据库、机器学习等!
  7. Github 王炸功能!Copilot 替代打工人编程?
  8. 苹果发布紧急公告:老设备11月3日前再不更新就要停止服务啦
  9. php外边框样式,CSS中的边框样式
  10. 照片看3秒就销毁的软件_3.9秒破百,比亚迪汉EV到店实拍:实车比照片更好看
  11. layui循环遍历数据_Layui之动态循环遍历出的富文本编辑器显示
  12. 4针串口线接法图_9针rs232串口接线图以及接线方法
  13. 安装office简繁转换增益集
  14. 这些悬浮动效的常见玩法你都知道吗?
  15. dnfdpl服务器维护了,2019DNF心悦DPL活动地址 DNF心悦DPL活动网址及奖励一览
  16. 我是谁:没有绝对安全的系统黑客手法介绍
  17. 软件需求分析报告 -机票预订系统
  18. Spark-core项目实战——电商用户行为数据分析
  19. hi3559AV100调试记录
  20. 微信小程序商城开发的流程

热门文章

  1. 张磊:极少有人真正理解时间的价值
  2. (转)人工智能无处不在,这次是有公司用它来炒股
  3. 【优化算法】晶体结构算法【含Matlab源码 1800期】
  4. 【特征提取】基于matlab频带方差端点检测【含Matlab源码 1765期】
  5. 【通信仿真】基于matlab蒙特卡罗算法2FSK系统抗噪声性能仿真【含Matlab源码 1632期】
  6. 【滤波器】基于matlab GUI高通+低通+带通+带阻FIR滤波器设计【含Matlab源码 092期】
  7. 【图像融合】基于matlab GUI拉普拉斯金字塔+小波变换+NSCT图像融合【含Matlab源码 870期】
  8. 【聚类分析】基于matlab GUI K-means聚类分析【含Matlab源码 791期】
  9. 【语音处理】基于matlab GUI录音信号时域频域分析(带面板)【含Matlab源码 064期】
  10. java 四大元注解_java中元注解有四个