知识点练习
先闻其声
游龙当归海,海不迎我泊浪人
猛虎当归山,山不迎我大豪杰
展开
-
QT中QTreeWidget的拖放操作
在学习Qt的过程中接触过QListWidget和QTextWidget的拖放操作,现QT项目实操需用到树形节点拖放的操作,在参考了教程与案例后,做个实践小Demo:class TreeWidget : public QTreeWidget{ Q_OBJECTpublic: explicit TreeWidget(QWidget *parent = nullptr); ...原创 2020-04-28 17:50:58 · 7616 阅读 · 0 评论 -
经典C++语言笔试题目 #6
Q1: 基类的析构函数不是虚函数,会带来什么问题?A:派生类的析构函数用不上,会照成资源泄漏;Q2: main 函数执行以前,还会执行什么代码?A:全局对象的构造函数会在main函数之前执行Q3: 如何打印出当前源文件的文件名以及源文件的当前行号?A:cout << __FILE__ ;cout<<__LINE__ ;__FILE__和__LINE__...原创 2019-09-18 08:42:19 · 396 阅读 · 0 评论 -
经典C++语言笔试题目 #5
Q1: 谈谈你是怎么认识c++中的模板的?A:模板使程序员能够快速建立具有类型安全的类库集合和函数集合,它的实现,方便了大规模的软件开发。(结合stl更好)Q2: 在c++的一个类中声明一个static成员变量有没有用?A:在C++类的成员变量被声明为static(称为静态变量),意味着该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,也就是说不管创建多少对像,stati...原创 2019-09-18 08:37:17 · 237 阅读 · 0 评论 -
经典C++语言笔试题目 #4
Q1: C++中virtual与inline的含义分别是什么?A:Virtual 虚函数inline 内联函数虚函数的特点;如果希望派生类能够重新定义基类的方法,则在基类中将该方法定义为虚方法,这样可以启用动态联编。内联函数的特点;使用内联函数的目的是为了提高函数的运行效率。Q2: const 与 #define 的比较 ,const有什么优点?A:区别:1:作用阶段:#de...原创 2019-08-18 08:54:04 · 263 阅读 · 0 评论 -
经典C++语言笔试题目 #3
Q1: Heap与stack的差别A:Heap是堆,stack是栈。Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行Q2: 重载(overloa...原创 2019-08-18 08:51:41 · 346 阅读 · 0 评论 -
C++ 二叉树的非递归后序遍历
写完二叉树的非递归中序遍历,再写下后序遍历树节点与结构没有改变,相比中序,先序在将子元素压栈时不对双亲结点作出栈//树结点class TreeNode {private: char name_;public: int State; TreeNode* leftNode; TreeNode* rightNode; public: TreeNode(char a):name_(a...原创 2019-07-28 20:20:41 · 593 阅读 · 0 评论 -
经典C++语言笔试题目 #2
Q1: 有了 malloc/free 为什么还要 new/delete ?A:malloc 与 free 是 C++/C 语言的标准库函数,new/delete 是 C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用 malloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/f...原创 2019-08-08 11:16:27 · 290 阅读 · 0 评论 -
经典C++语言笔试题目 #1
Q1:C和C++中struct有什么区别?A: Q2: C++中的struct和class有什么区别?A:从语法上讲,class和struct做类型定义时只有两点区别:(一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;(二)成员的默认访问权限。class的成员默认是private权限,struct默认是...原创 2019-08-08 11:05:42 · 256 阅读 · 0 评论 -
C++ 二叉树的非递归先序遍历
非递归先序遍历二叉树似乎大概率中面试考题,所以在了解了递归遍历的机制后,着手写下非递归的先序遍历。先定义树结点类,并创建好对象,这里图方便使用了栈容器而没有自定义链表://树结点class TreeNode {private: char name_;public: int State; TreeNode* leftNode; TreeNode* rightNode; publi...原创 2019-07-18 09:17:02 · 704 阅读 · 0 评论 -
C++ 二叉树的非递归中序遍历
上一篇写完树的非递归先序遍历,接下来写中序遍历先定义树结点类,并创建好对象,相比先序,中序在结点多了状态值以供判断是否已入过栈://树结点class TreeNode {private: char name_;public: int State;//状态值 TreeNode* leftNode; TreeNode* rightNode; public: TreeNode(ch...原创 2019-07-18 09:33:54 · 1183 阅读 · 0 评论 -
C++ 二进制文件流读写包含多态的派生类 #2
上一篇写了一种二进制读写含多态的派生类的方法了,这次发散思路再写一种。先写好派生类:class a {public: int m; a(int m1) { m = m1; } virtual void MsgBox() { cout << "It's a." << endl; }};class b :public a {public:...原创 2019-06-28 11:04:06 · 256 阅读 · 0 评论 -
C++ 二进制文件流读写包含多态的派生类 #1
二进制文件的优势在于效率高,占用小,但不可直接读取,对于量大又需要隐藏信息的存储来说很实用。既然是读写内存数据流,那我们就可以对类对象进行读写操作,而派生类只是有点小不同。先写好派生类:class a {public: int m; a() {} a(int m1) { m = m1; } virtual void MsgBox() { cout << "...原创 2019-06-28 11:02:41 · 344 阅读 · 0 评论 -
C++ _Find_Pr()算法解析
_Find_pr()算法比较简单,它的作用是将容器中的值与传入值作对比处理,可以先看下算法的定义: // TEMPLATE FUNCTION _Find_pr WITH PREDtemplate<class _InIt, class _Ty, class _Pr> inline _InIt _Find_pr(_InIt _First, _InIt _Last, const ...原创 2019-06-18 09:26:58 · 601 阅读 · 0 评论 -
C++ for_each()算法解析
for_each()算法比较简单,它的作用是遍历容器并对每一个元素执行函数,可以先看下算法的定义: // TEMPLATE FUNCTION for_eachtemplate<class _InIt, class _Fn1> inline _Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func) { // perform fu...原创 2019-06-18 09:20:18 · 3430 阅读 · 0 评论 -
C++ replace()算法解析
Replace()算法比较简单,它的作用是将容器中的值替换为相应的值,可以先看下算法的定义: // TEMPLATE FUNCTION replacetemplate<class _FwdIt, class _Ty> inline void replace(_FwdIt _First, _FwdIt _Last, const _Ty& _Oldval, const ...原创 2019-06-09 21:07:59 · 1026 阅读 · 0 评论 -
C++ equal()算法解析
equal()算法比较简单,它的作用是比较两个容器是否相等然后返回布尔值,它有两种重载的实现方式,先看下算法的定义: // TEMPLATE FUNCTION equal WITH PREDtemplate<class _InIt1, class _InIt2, class _Pr> inline bool _Equal(_InIt1 _First1, _InIt1 _Las...原创 2019-06-09 21:02:54 · 12763 阅读 · 0 评论 -
C++ min()算法解析
Min() 算法比较简单,它的作用是比较两个值大小然后返回最小值,可以先看下算法的定义: // TEMPLATE FUNCTION mintemplate<class _Ty> inline _Post_equal_to_(_Right < _Left ? _Right : _Left) _CONST_FUN const _Ty& (min)(const _Ty&...原创 2019-06-09 20:54:46 · 23926 阅读 · 0 评论 -
C++链表练习
线性表是最简单的数据组织形式,通过单向链表我们可以建立小表单存储一些简单的数据。下面就来做一个仓储管理的练习:Main函数已经给出:那我们先定义好链表Goods类:class Goods {public: Goods(int sW) { singleWeight = sW; totalWeight += singleWeight;//构造函数增上单重量 } ~Goods...原创 2019-05-28 09:52:52 · 880 阅读 · 0 评论 -
C++复数运算符重载练习
在学习了运算符重载后,知道了运算符重载的本质是一个特殊的成员或友元函数,重载后原意义没有失去,而是定义了相对类的一个新运算符。下面来做个运算符重载的练习:先在复数类中声明好函数原型与复数私有变量class Complex {public: Complex(int a=0, int b=0) { n = a, d = b; } Complex operator =(Complex &am...原创 2019-05-28 09:37:11 · 546 阅读 · 0 评论