- 博客(35)
- 收藏
- 关注
原创 QSqlQueryModle使用过滤器来完成数据库数据筛选
类模板类模板并不是一个真正的类#include <iostream>using namespace std;template<class T>class CMath{public: CMath(T const& t1, T const& t2):m_t1(t1),m_t2(t2){} T sum(); // T sum(){ // return m_t1+m_t2; // }private: T
2020-10-30 07:02:13 2773
原创 下拉菜单的叠加基于 QpushButton QScrollArea Widget verticalSpacer 依赖于Widget的setVisible函数
//先创建一个QScrollArea,用作边框,是所有主按钮,widget和verticalSpacer的父窗口//创建 主pushbutton1,主pushbutton2,主pushbutton3//在pushbutton1下创建widget1用于存放子按钮,//向widget1中添加子按钮pushbuttonsub1,pbsub2,pbsub3…//在pushbutton2下创建widget2用于存放子按钮//向widget21中添加子按钮pushbuttonsub4,pbsub5,pbsub
2020-10-23 02:38:51 275
原创 Qt LineEdit QCompleter QComboBox 组合,实现lineEdit记忆功能下拉选项功能
伪代码 有问题请问QTLineEdit 和QCompleter 组合实现自动补全提示 QLineEdit *lineEdit = new QLineEdit(this);//主控件 lineEdit->setClearButtonEnabled(true);//添加清除按钮 QStringList valueList;//历史记录保存列表 QStringListModel* listModel;//数据来源模型 QCompleter *completer = new
2020-10-23 01:35:39 6160 3
原创 Qt从入门到放弃之:自定义信号和槽
Qt从入门到放弃知识点信号和槽的概念信号和槽的定义信号槽信号和槽的连接信号和槽的连接注意事项信号的触发demo运行效果文件结构代码signalAndSlot.pro头文件widget.hteacher.hstudent.h.cpp文件main.cppwidget.cppteacher.cppstudent.cpp知识点信号和槽的概念信号和槽机制是QT自行定义的一种通信机制,实现对象之间的数据交互,当某个对象状态发生改变时将会发送信号,该函数可以被其他对象接收,接收后会执行一个指定的操作(槽)信号和槽
2020-09-05 14:07:57 460
原创 Qt从入门到放弃之:实例计算器
知识点QPushButton信号函数clicked(void)QLineEdit信号函数textChanged(const QString&)QString编译期间直接生成的宏QStringLiteral(str)在创建按钮或其他控件时,可以定义一个类中的私有成员函数来完成控件的创建以及槽函数连接,在创建函数形参表中使用const char* member接收需要绑定的自定义槽函数,传递槽函数实参时使用SLOT(mySolt())//创建按钮时,调用创建函数来创建,传递创建按钮所要连接
2020-09-04 04:02:20 224
原创 C++从入门到放弃之:C++ 函数模板、类模板、容器原理
C++从入门到放弃函数模板函数模板函数模板的定义形式template<class 类型参数1, class 类型参数2, ...> 返回值类型 函数模板名(调用形参1, 调用形参2), ...{ ...}eg:template<class T> T Max(T x, Ty){ return x>y ? x:y;}可以使用任何标识符作为类型形参的名称,但是使用T已经是一种惯例,T表示的是调用者在使用这个函数模板时指定的任意数据类型...
2020-09-04 03:27:07 1035
原创 C++从入门到放弃之:C++ I/O流
C++从入门到放弃C++ I/O1. 主流的I/O流类2. 格式化 I/O3. 字符串流4. 文件流5.二进制I/OC++ I/O1. 主流的I/O流类 ios / \ istream ostream / | \ / | \istrstream ifstream iostream ofstream ostrstream2. 格式化 I/O格式化函数(本质成员函数)cout.precision(...);//小数精度控制cout.
2020-08-28 08:58:33 127
原创 C++从入门到放弃之:QT Linux环境安装配置
Qt 在线安装器下载网址:(需要上外网)Qt 在线安装器下载下载地址Qt官方资源下载从 Qt 5.15 开始,开源版本,无论是不是 LTS,不再提供编译后的独立安装包,只能在线安装。如果确实需要离线安装包,则要购买 Qt for Small Business 产品。https://www.qt.io/blog/available-now-qt-for-small-business安装下载qt安装包./xxx.run运行配置环境变量/home/panda/QT5.4.1/5.4/gcc
2020-08-27 15:08:37 437
原创 C++从入门到放弃之:C++异常机制(exception)
C++从入门到放弃C++异常机制软件开发中的常见错误传统C语言的错误处理机制`setjmp()`函数与`longjmp()`函数jmp_buf 异常结构C++异常机制语法异常抛出异常的检测和捕获C++异常机制软件开发中的常见错误语法错误(编译器编译阶段就会检查出来)逻辑错误(程序代码编译没有问题,但是运行结果和想要的结果不符合,通过打印调试信息来查找错误)(GDB)设计缺陷(软件的整体框架不严谨,后期维护升级麻烦)需求不符(对需求的理解出现偏差)功能错误(定能和需求不匹配)环境异常(设计的
2020-08-27 14:05:30 1412
原创 C++从入门到放弃之:运行时类型信息
typeid操作符头文件#include <typrinfo>typeid(类型/对象);//返回typeinfo,用于描述类型信息typeinfo中包含name()成员函数,可以直接获取字符串形式的类型信息
2020-08-26 16:34:12 230
原创 C++从入门到放弃之:多态(Polymorphic)、虚函数
C++从入门到放弃多态(Polymorphic)1. 虚函数覆盖(函数重写)和多态概念2. 虚函数覆盖的条件3. 形成多态条件4. 多态的原理(*(*(void(***)(void))&a))();5. 纯虚函数,抽象类,纯抽象类6. 工厂方法模式7. 虚析构函数多态(Polymorphic)1. 虚函数覆盖(函数重写)和多态概念如果将基类中某个成员函数声明为虚函数,那么其子类中具有相同函数签名的成员函数也就是虚函数,并且对基类中的版本形成覆盖,即函数重写满足虚函数覆盖以后,在通过指向子类
2020-08-26 04:23:52 234
原创 C++从入门到放弃之:多重继承、钻石继承、虚继承
C++从入门到放弃1. 多重继承(multiple inheritance)2. 钻石继承3. 虚继承1. 多重继承(multiple inheritance)概念一个子类可以同时继承多个基类,这样的继承方式称为多重继承向上造型指针偏移问题向上造型时,编译器会根据各个基类子对象的内存布局,进行适当地偏移计算,以保证指针的类型和所指向的基类子对象类型一致名字冲突问题1> 如果子类继承的多个基类中存在相同的名字,当通过子类访问这些名字时,编译器会报歧义错误_名字冲突2>
2020-08-24 15:01:47 263
原创 C++从入门到放弃之:C++ 继承基本语法
继承对象的自恰性所有和基类相关成员的操作都应有基类提供相应的方法功能继承的概念通过一种机制描述类型之间共性和特征的方式,利用已有的数据类型定义新的数据类型,这种机制就是继承基类--派生-->子类子类--继承-->基类继承语法class/struct 类名:继承方式 基类,继承方式 基类,...{//继承表访问控制限定符: 类名 (形参表):成员变量(初值),...{//初始化列表 函数体;//构造函数 } ~类名(void){ //析构函数 函数体
2020-08-24 14:59:17 411
原创 C++从入门到放弃之:操作符重载看过必会
C++从入门到放弃操作符重载操作符重载注意事项不可以重载的操作符双目操作符计算类双目操作符`+` `-` `*` `/`赋值类双目操作符`+=` `-=` `...`单目操作符重载 `#O`计算类单目操作符 `-` `~` `...`自增减类单目操作符`++` `--``++i` `--i``i++` `i--`输入输出操作符 `<<` `>>`下标访问操作符 `[ ]`函数操作符`()`**`new` `delete`操作符**操作符重载速查表操作符重载基本概念操作符重
2020-08-23 02:02:20 223
原创 C++从入门到放弃之:成员指针
C++从入门到放弃成员指针成员变量指针成员函数指针成员指针成员指针的好处就是可以修改成员指针的指向,不论是成员变量指针还是成员函数指针,只要指针指向的成员或者函数的类型(参数表)一致,就可以改变其指向成员变量指针成员变量指针并不是真正意义上的指针,而是假指针,保存的是指针指向的对象的相对偏移地址成员变量指针的定义和初始化类型 类名::*指针变量名 = &类名::成员变量;成员变量指针的使用对象.*成员指针变量名;注:.*直接成员指针解引用操作符对象指针->*成员变量;注
2020-08-23 02:01:19 316
原创 C++从入门到放弃之:静态成员与单例模式的实现
C++从入门到放弃静态成员静态成员变量静态成员函数单例模式饿汉式懒汉式单例模式综合代码模板静态成员静态成员变量语法class 类名{public:private: static 数据类型 变量名;//静态成员变量声明};数据类型 类名::变量名 = 初值;//定义和初始化对于普通的成员变量变量属于对象,对于静态成员变量变量不属于对象,类中的静态成员变量可以直接通过类名 + 静态成员变量名直接访问,相当于共享资源普通成员变量在构造对象时定义和初始化,而静态成员变量需要在类的外部单
2020-08-23 02:00:30 435
原创 C++从入门到放弃之:拷贝构造和拷贝赋值
C++从入门到放弃拷贝构造和拷贝赋值浅拷贝和深拷贝浅拷贝:数据共享`double free`深拷贝:拷贝指针所指向的实际内容拷贝赋值拷贝构造和拷贝赋值浅拷贝和深拷贝浅拷贝:数据共享double free概念如果类中包含了指针形式的成员变量,缺省的拷贝构造函数只是复制了指针本身,没有复制指针所指向的内存中的实际位置,这种拷贝方式被称为浅拷贝缺省到的拷贝是浅拷贝(拷贝的是地址编号)浅拷贝问题浅拷贝将导致不同的对象之间的数据共享,两个对象中的指针指向同一个内存空间,当在析构过程中 会引发dou
2020-08-23 02:00:03 174
原创 C++从入门到放弃之:析构函数
C++从入门到放弃析构函数析构函数析构函数语法形式class 类名{ ~类名(void){ 析构函数函数体,主要负责处理对象生命周期中动态资源 }};析构函数的注意事项函数名必须是~类名析构函数没有返回值,也没有参数表,不可以重载析构函数不能被重载,一个类中只能有一个析构函数析构函数的调用时机当对象被销毁时,析构函数会自动被调用和执行1> 对于一个栈对象时其作用域的又花括号}来调用析构函数,即占内存销毁时机为离开所在作用域时2> 对于一个堆对象,是
2020-08-23 01:59:39 206
原创 C++从入门到放弃之:this指针 和 常成员函数
C++从入门到放弃this指针 和 常成员函数1. this指针需要使用`this`指针的场景2. 常成员函数(cosntstruction)this指针 和 常成员函数1. this指针类中的成员函数(包括构造函数,析构函数)中包含有一个隐藏的当前类类型的指针参数(类* this),名为this在成员函数中访问类中其他成员变量就是通过this指针来实现的对于普通成员函数,this指针就是指向该成员的调用对象,对于构造函数,this指针就是指向正在创建的对象Code#includ
2020-08-20 16:02:28 429
原创 C++从入门到放弃之:C++初始化列表
C++从入门到放弃初始化列表初始化列表成员的初始化顺序由声明顺序决定,和初始化列表的顺序无关,不要使用一个成员变量去初始化另一成员变量,使用初始化列表实在成员定义时就完成初始化的,而将初始化过程放在构造函数中时,是对已经定义完的成员变量进行赋值操作初始化列表是通过对象在创建时传入的参数,在定义对象成员时就对对象的成员进行了初始化操作class 类名{ 类名(形参表):成员变量1(初值),成员变量2(初值),...{...}};Codeeg: class Student{ p
2020-08-20 15:59:24 218
原创 C++从入门到放弃之:C++构造函数
C++从入门到放弃C++构造函数1. 构造函数(Constructor)2. 默认构造函数注意事项总结3. 类型转换构造函数(单参构造函数)4. 拷贝构造函数C++构造函数1. 构造函数(Constructor)概念构造函数是一个特殊的成员函数,构造函数没有返回值,函数名和类名一致语法形式class 类名 {public: 类名(形参表):实参(形参),...{ //主要负责对象的初始化,即初始化成员变量 }}构造函数特点构造函数函数名和类名一致,没有返回类型构造
2020-08-20 15:58:13 291 1
原创 C++从入门到放弃之:类和对象基本认知
C++从入门到放弃类和对象1. 类和对象的基本认识2. 类的定义和实例化3. 对象的创建和销毁类和对象1. 类和对象的基本认识什么是对象万物皆是对象,任何一种事物都可以看做时对象如何描述对象通过对象的属性和行为来描述对象面向对象的程序设计对自然界中的对象观察引入到编程实践的一种理念和方法,这种方法被称为"数据抽象",即在描述对象时把细节东西剥离出去,只考虑一般性的,有规律的和统一性的东西什么是类类是将多个对象的共同性提取出来定义的一种新的数据类型,是对对象属性的行为的抽象描述2.
2020-08-20 15:52:49 233
原创 C++从入门到放弃之:类型转换
C++从入门到放弃类型转换1. 隐式类型转换2. 显式类型转换**总结**类型转换1. 隐式类型转换2. 显式类型转换类型做换形式cast-name<type>(expression);1> C++ 中兼容C中的强制类型转换char c = 'A';int i = (int)c;//Cint i = int (c);//C++2> C++扩展了四种操作符形式的显示类型转换a. 静态类型转化:static_cast语法目标变量 = static_cast&
2020-08-20 15:45:55 207
原创 C++从入门到放弃之:C++ 左值引用与右值引用详解
C++从入门到放弃C++ 引用1. 左值引用2. 万能引用(常引用)3. 右值引用4. 引用型函数返回值5. 引用和指针6. 函数传参传递指针和引用的区别总结C++ 引用1. 左值引用定义引用即别名,某个变量的别名,对引用的操作就等同于对变量本身进行的操作,左值引用引用的对象只能是左值语法形式类型 & 引用名 = 变量;int a = 100;int &b = a;b++;cout<<b<<endl;//101引用使用时注意事项引用
2020-08-20 15:39:48 1085 1
原创 C++从入门到放弃之:C++动态内存管理 `new`和`delete`
C++从入门到放弃C++ 动态内存管理1. C 动态内存管理2. C++ 动态内存管理2. C++ 动态内存管理的原理C++ 动态内存管理1. C 动态内存管理内存分配函数malloc()/brk()/sbrk()/mmup()/realloc()/calloc()内存释放函数free()/brk()2. C++ 动态内存管理动态分配内存new和new[ ]可以根据数据类型自动动态分配内存空间数据类型 * 指针名= new 数据类型;数据类型 * 指针名= new 数据
2020-08-20 15:27:54 158
原创 C++从入门到放弃之:C++ 函数
C++从入门到放弃C++ 函数1. 函数重载2. 函数参数1> 函数的哑元参数2> 函数的缺省参数(默认实参)内联函数(inline)C++ 函数1. 函数重载定义在相同作用域中可以定义相同函数名的函数,但是它们的参数必须有所区分,这样的多个函数将就构成了重载关系,重载函数通过函数的参数唯一标识区分函数,在调用时将会通过参数的不同来区分构成重载关系的函数函数重载的匹配原则函数是否构成重载关系与函数的返回值类型无关通过函数指针调用重载关系的函数,由函数指针的类型决定匹配重载的版
2020-08-20 15:20:58 143
原创 C++从入门到放弃之:C++的循环控制语句
C++从入门到放弃for循环C中for利用迭代器的for循环利用`auto`关键字简化迭代器版本的for循环C++11 新`for`循环称为,基于范围的for循环for循环C中forstring str = “hello world”;for(int i = 0; i < str.length();i++){ cout << str[i] <<endl;}利用迭代器的for循环for(string::iterator it=str.begin();it
2020-08-20 15:18:42 106
原创 C++从入门到放弃之:操作符别名
C++从入门到放弃操作符别名操作符别名C++的一些操作符是有相应的别名的,使用形式和原本的没有区别|| <==> or&& <==> and{ <==> <%} <==> %>#include<iostream>using namespace std;int main (void)<% int i = 1,j = 0; if (i or j)<% co
2020-08-20 15:14:40 157
原创 C++从入门到放弃之:数据结构基础
C++从入门到放弃C++ 数据类型1. 结构体2. 联合体3. C++枚举和枚举类("魔数")4.C++字符串1> c++中兼容C语言字符2> C++ string类3> 动态数组应用代码5. C++的布尔类型(bool)C++ 数据类型1. 结构体定义结构体变量时,可以省略struct关键字在结构体里面可以直接定义函数,该函数称为成员函数,在成员函数中可以直接访问结构体中的其他成员变量成员的默认访问权限::struct是public,class是private//1
2020-08-17 16:30:18 284
原创 C++从入门到放弃之:名字空间(namespace)
C++ 从入门到放弃名字空间1. 名字空间作用2. 定义名字空间3. 名字空间成员的使用1> 作用域限定操作符"::"2> 名字空间指令3> 名字空间声明4. 不属于任何名字空间的成员(全局作用域)5. 无名名字空间6. 名字空间的嵌套7. 名字空间的合并名字空间1. 名字空间作用避免名字冲突划分逻辑单元一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来
2020-08-17 06:59:31 227
原创 C++从入门到放弃之:Hello.cpp
C++ 从入门到放弃Hello.cpp1. 创建c++程序源代码2. C++程序的编译3. C++扩展名4. C++头文件5. C++输入输出流Hello.cpp1. 创建c++程序源代码vim hello.cpp#include <iostream>int main(void){ std::cout << "hello world" << std::endl; return 0;}2. C++程序的编译预处理编译: 检查语法汇编:
2020-08-17 06:52:52 1349
原创 C++从入门到放弃之:基础中的基础
C++基础C++概述1.历史背景C++的江湖地位C++之父C++发展过程2.C++应用领域3.C和C++相同和区别C++概述1.历史背景C++的江湖地位java、C、python、C++C++之父Bjarne Stoustrup(1950–)C++发展过程-->1979,Cpre,为C语言增加了类的机制-->1983,开发全新编程语言C with Class,即后来C++-->1985,CFront1.0,《The C++ Programming Language》
2020-08-17 06:48:26 150
原创 码农之路从入门到放弃之:函数
标准C库函数前言标准C库函数字符串处理函数文件IO流操作函数打开文件,获取文件指针前言本人系小白,这篇文档只是为了归纳和分享学习中的函数相关的知识点,您若发现其中有出现的错误,请及时留言,万分感谢电脑端浏览器快速查找指定函数Ctrl+F 函数名例如:Ctrl+F printf()一定要加函数名后面的小括号,"函数名+()"构成一个字符串,你懂的所描述的函数内容主要有一下...
2020-03-22 20:57:52 165
原创 码农之路从入门到放弃之:计算机基础知识
目录计算机概述计算机组成部分1.硬件部分:2.软件部分操作系统(OperatingSystem)1.windows简介1.1.windows——优点1.2.windows——缺点2.MacOS(iOS)简介2.1.MacOS——优点2.2.MacOS——缺点3.UNIX操作系统简介3.1.UNIX——系统组成1.)内核(Kernel)2.)Shell(外壳)3.)文件系统3.2.UNIX——特点3...
2020-02-27 13:13:25 403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人