随笔分类 - [01]【C/C++】
摘要:Qt应用程序默认没有加QtNetwork库。如下图: 在开发过程中,因处理业务需要手动添加QtNetwork库。根据常见情况分为以下两种: 【1】若使用QTCreator开发程序 在工程的pro文件中添加:QT += network 【2】若使用VS + QT开发程序 本地环境VS2017 + QT
阅读全文
摘要:【1】LoadLibrary加载动态库失败的可能原因以及解决方案: (1)dll动态库文件路径不对。此场景细分为以下几种情况: 1.1 文件路径的确错误。比如:本来欲加载的是A文件夹下的动态库a.dll,但是经过仔细排查原因,发现a.dll动态库竟然被拷贝到B文件夹下去了。 若真遇到这种低级错误,建
阅读全文
摘要:【1】场景分析 在一个函数内部,可能会多次用到某一段代码,一般情况是把这段用到次数较多的代码封装成一个函数。 但是,如果这段代码仅仅只在这个函数中有使用,这时封装成函数显得既麻烦又冗赘。 那么,有没有办法生成一个“临时的函数”,且“临时的函数”生命周期仅在这个函数当中?C++11中可以使用funct
阅读全文
摘要:【1】多重循环编码规范 在多重循环中,必须将最忙的循环放在最内层,以减少CPU切入循环层的次数。 【2】示例代码 1、新建QT默认工程 2、源码 (1)pro文件 (2)mainwindow.h (3)mainwindow.cpp (4)main.cpp 3、运行结果 【3】总结 循环越少越好。如果
阅读全文
摘要:【1】滚动条 & 滑块 & 表盘 Qt示例工程: (1)slidergroup.h (2)slidergroup.cpp (3)window.h (4)window.cpp (5)main.cpp 注意:代码已很简洁,没有再加注释。 【2】运行效果 水平滚动条: 垂直滚动条: Good Good S
阅读全文
摘要:【1】代理应用示例源码 用代码说事,比较靠谱。 代码目录:三个自定义类,重实现QStyledItemDelegate类。main函数应用示例。 (1)ComboDelegate.h (2)ComboDelegate.cpp (3)DateDelegate.h (4)DateDelegate.cpp
阅读全文
摘要:【1】示例代码 用代码说事,比较靠谱。请看下例: 【2】常对象调用常方法 xiaoMing属于常对象。所谓常对象,即就是被const修饰的对象。对于常对象而言,其调用的方法必须是常成员方法。 所谓常成员方法,即就是由const修饰的成员方法。 在常成员方法中,其this指针被const修饰:cons
阅读全文
摘要:【1】示例代码 项目应用示例: 【2】分析图解 移位运算分析: 【3】移位运算 位运算应用口诀: 清零取位要用与,某位置一可用或;若要取反和交换,轻轻松松用异或。 【4】与移位运算有关的操作符优先级问题 示例代码如下: 常常有人会写这样的表达式:1 << 2 + 3 << 4,其本意是(1 << 2
阅读全文
摘要:C++类型转换主要分为两种:隐式类型转换、显式类型转换(强制类型转换)。 【1】隐式类型转换 所谓隐式类型转换,是指不需要用户干预,编译器默认进行的类型转换行为(很多时候用户可能都不知道到底进行了哪些转换)。 隐式类型转换一般分为两种:内置数据类型、自定义数据类型。 [1.1] 内置数据类型(基本数
阅读全文
摘要:【1】BUG简单示例代码 主要代码如下: 注意:宏、宏展开、函数调用的结果差异。 用宏计算时,宏中的参数由前至后赋值。 逐步分析:调用func(a1),调用结束后,宏的第一个参数值为1(即函数返回值),同时由于func为引用形参,a1此时值为110; 宏的第二个参数值为a1 + 10 = 120;宏
阅读全文
摘要:【1】一般的前置函数声明 见过最多的前置函数声明,基本格式代码如下: 很好理解,不做赘述。 【2】自定义类型的前置声明 自定义类型的前置声明,由于编译器不知道类型的大小,所以不可以声明类型的对象。只可以利用类型声明指针和引用。 代码如下: 如上,利用前置类型的指针想调用其成员函数,会报编译错误!那么
阅读全文
摘要:【1】相同点 目标一致:为了实现多态。 【2】不同点 (1)声明的区别: 1、纯虚函数的声明除过像虚函数加关键字virtual而外,还必须加 = 0; 2、声明为虚函数,为了能让这个函数在它的派生类里面被覆盖(或隐藏),这样编译器就可以通过后期绑定达到多态性。 3、声明为纯虚函数,有一种接口的规范作
阅读全文
摘要:【1】emplace_back源码 1 template <class... _Valty> 2 decltype(auto) emplace_back(_Valty&&... _Val) { 3 // insert by perfectly forwarding into element at e
阅读全文
摘要:【1】提前分配足够空间以免不必要的重新分配和复制代价 关于vector容器重新分配和复制及析构释放的代价,请参见随笔《STL容器之vector》。 应用示例对比代码如下: 1 #include <vector> 2 #include <ctime> 3 #include <iostream> 4 u
阅读全文
摘要:【1】函数调用时形参的压栈顺序 通过示例分析调用函数时,形参的压栈(不懂“压栈”?其实说人话即“输入”)顺序常识。 1、示例代码如下(VS2010): 1 #include <iostream> 2 using namespace std; 3 4 void fun(int a, int b, in
阅读全文
摘要:温馨提醒:此文续《C++笔试题1(基础题)》 (112)请写出下列程序的输出内容 代码如下: 输出内容如上注释。 至于结果为什么是这样的,请参见《C++笔试题1(基础题)》中第(6)条及第(74)条。 或参见随笔《重载、覆盖、隐藏》理论点。 (113)请写出下列程序的输出内容 代码如下: 输出内容如
阅读全文
摘要:【1】面向过程和面向对象的比较 网上发现了一篇文章,说了一下OP与OO的不同,并且打了一个比喻,通俗易懂。 有人这么形容OP和OO的不同:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。 所谓盖浇饭,北京叫盖饭,东北叫烩饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖
阅读全文
摘要:【1】字符串匹配问题分析 (1)字符串匹配一般算法 与 KMP算法比较: 一般算法:从父串的第一个字符开始与子串的第一个字符开始比较: 1、若相等,再比较各自的第二个字符,依次循环进行,直到整个子串结束。在子串没有完全匹配完之前,若有一个字符不相等。请参考以下若不相等。 2、若不相等,从父串的第二个
阅读全文
摘要:面试过程中遇到的编程题整理,于此备录。分享,共勉。(持续更新中......欢迎补充) (1)用户输入M, N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 程序代码如下: (2)从键盘输入10个学生的学号和成绩,按成绩从大到小建立一个有序链表,并输出。 程序代码如下:
阅读全文
摘要:为了便于温故而知新,特于此整理 C/C++ 方面相关面试题。分享,共勉。 (备注:各题的重要程度与先后顺序无关。不断更新中......欢迎补充) (1)分析下面程序的输出(* 与 -- 运算符优先级问题) 程序1:原题程序 总结:参考《C++操作符的优先级》 程序2:对比分析 (2)指针函数与函数指
阅读全文