随笔分类 -  C++

摘要:C++模板 C++的模板是多态的一种表现。 C++的模板有模板函数与模板类,模板类是由多个模板函数组成的。 什么是模板,当实际传入类型的时候才能确定处理的类型。类似于Java中的泛型。 示例:(求最大值) Array.h #include <iostream> using namespace std 阅读全文
posted @ 2025-06-27 20:05 站着说话不腰疼 阅读(21) 评论(0) 推荐(0)
摘要:C++友元函数 友元函数(Friend Function)是C++中一种特殊的函数,它能够访问类的私有(private)和保护(protected)成员,即使它不是该类的成员函数。 基本概念 友元函数的特点: 不是类的成员函数,但可以访问类的所有成员 需要在类内部用friend关键字声明 定义在类外 阅读全文
posted @ 2025-06-27 20:05 站着说话不腰疼 阅读(124) 评论(0) 推荐(0)
摘要:目录C++虚函数1.虚函数基本感念1.1定义与声明1.2虚函数调用2.虚函数的工作原理2.1 虚函数表(vtable)2.2 内存结构示例3. 虚函数关键特性3.1 覆盖(override)3.2 纯虚函数4. 虚函数使用场景4.1 多态容器4.2 工厂模式5. 高级特性5.1 虚析构函数5.2 f 阅读全文
posted @ 2025-06-27 20:05 站着说话不腰疼 阅读(346) 评论(0) 推荐(0)
摘要:C++重载 重载是同一个函数名,根据传入参数的不同,实现不同的功能,比如长方形只有长、宽,长方体有长、宽、深。当调用同一个求面积函数时,会根据参数的个数不同,返回调用不同的实现。 重载的特点(函数的名称相同,返回值不能作为重载特点): 参数类型不同 参数个数不同 参数顺序不同 示例:(长方形与长方体 阅读全文
posted @ 2025-06-27 20:04 站着说话不腰疼 阅读(37) 评论(0) 推荐(0)
摘要:C++的构造函数与析构函数 1.构造函数 构造函数的函数名与类名相同,通过构造函数的条件可以确定创建对象的条件。 当类中有定义构造函数时,默认的无参构造函数会失效。 示例:(求学生的平均分) Student.h #include <iostream> using namespace std; cla 阅读全文
posted @ 2025-06-27 20:04 站着说话不腰疼 阅读(22) 评论(0) 推荐(0)
摘要:目录C++面向对象1.封装特点示例:2.继承特点继承方式示例:3. 多态(Polymorphism)特点示例(运行时多态)4. 抽象(Abstraction)特点示例5. 其他面向对象特性(1) 构造函数 & 析构函数(2) 运算符重载(Operator Overloading)(3) 友元(Fri 阅读全文
posted @ 2025-06-27 20:04 站着说话不腰疼 阅读(48) 评论(0) 推荐(0)
摘要:C++输入输出 C++的输入输出流需要包含<iostream>,里面包含了输入输出流,以及对string的定义和相关操作。 1.cout输出流 cout将数据输出到控制台 #include <iostream> //包含iostream using namespace std;//将标准库std引入 阅读全文
posted @ 2025-06-27 20:04 站着说话不腰疼 阅读(23) 评论(0) 推荐(0)
摘要:3、C++数据类型 C++ 提供了丰富的数据类型来满足不同编程需求,可以分为基本数据类型、复合数据类型和用户自定义类型三大类。 一、基本数据类型 1. 整数类型 类型 大小 (字节) 范围 (32位系统) short 2 -32,768 到 32,767 int 4 -2,147,483,648 到 阅读全文
posted @ 2025-06-27 20:03 站着说话不腰疼 阅读(165) 评论(0) 推荐(0)
摘要:2、第一个C++程序 C++程序结构 #include <iostream> using namespace std; // main() 是程序开始执行的地方 int main() { cout << "Hello World"; // 输出 Hello World return 0; } #in 阅读全文
posted @ 2025-06-27 19:58 站着说话不腰疼 阅读(43) 评论(0) 推荐(0)
摘要:1、C++介绍 来源菜鸟教程:https://www.runoob.com/cplusplus/cpp-intro.html C++简介 C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。 C++ 被认为是一种中级语言,它综合了高级语 阅读全文
posted @ 2025-06-27 19:58 站着说话不腰疼 阅读(304) 评论(0) 推荐(0)
摘要:Qt实现天气预报 实现效果: 实现代码 使用QNetworkAccessManager进行http请求,获取天气的数据 使用QMenu进行退出 使用鼠标移动事件进行窗口的移动 void Widget::mousePressEvent(QMouseEvent *event) { if(event->b 阅读全文
posted @ 2025-05-09 12:08 站着说话不腰疼 阅读(88) 评论(0) 推荐(0)
摘要:Qt使用QPainter绘制按钮与实现动画效果 实现效果: 实现代码: mybutton.h #ifndef MYBUTTON_H #define MYBUTTON_H #include <QPaintEvent> #include <QPropertyAnimation> #include <QW 阅读全文
posted @ 2025-05-09 12:06 站着说话不腰疼 阅读(122) 评论(0) 推荐(0)
摘要:Qt使用QPainter实现汽车仪表盘 实现效果: widget.h #ifndef WIDGET_H #define WIDGET_H #include <QTimer> #include <QWidget> QT_BEGIN_NAMESPACE namespace Ui { class Widg 阅读全文
posted @ 2025-05-09 12:04 站着说话不腰疼 阅读(63) 评论(0) 推荐(0)
摘要:Qt使用QPainter绘图 QPainter类可以绘制很多东西,如文字、线、矩形、圆、椭圆、扇形等。 1.绘制图形会调用paintEvent事件 protected: void paintEvent(QPaintEvent *event) override; 2.绘制一个文字 函数原型 void 阅读全文
posted @ 2025-05-09 12:04 站着说话不腰疼 阅读(629) 评论(0) 推荐(0)
摘要:Qt使用QTcpSocket实现网络助手客户端 .pro需要增加network QT += core gui network headers widget.h #ifndef WIDGET_H #define WIDGET_H #include <QTcpSocket> #include <QWid 阅读全文
posted @ 2025-05-09 12:03 站着说话不腰疼 阅读(106) 评论(0) 推荐(0)
摘要:Qt使用QTcpServer实现网络助手服务端 QTcpServer是qt用来操作服务的类。 .pro需要增加network QT += core gui network headers mycombobox.h #ifndef MYCOMBOBOX_H #define MYCOMBOBOX_H # 阅读全文
posted @ 2025-05-09 12:02 站着说话不腰疼 阅读(59) 评论(0) 推荐(0)
摘要:Qt使用QSerialPort实现串口调试助手 QSerialPort用于操作串口,如监听哪个串口、波特率、校验位、停止位、数据位等。 .pro需要增加serialport QT += core gui serialport headers customthread.h #ifndef CUSTOM 阅读全文
posted @ 2025-05-09 12:01 站着说话不腰疼 阅读(770) 评论(0) 推荐(0)
摘要:Qt信号与槽的绑定 在qt当中,用户点击按钮后,我们如何获取到用户真的点击了按钮呢? 当用户点击按钮后,会发出一个clicked的信号,我们可以对这个信号进行监听就可以知道用户点击了按钮,处理这个信号的我们叫槽。 1、信号与槽绑定的方式 1.1、通过ui页面生成 选择指定按钮右键,转为槽 分别在.h 阅读全文
posted @ 2025-05-09 12:01 站着说话不腰疼 阅读(203) 评论(0) 推荐(0)
摘要:Qt设置快捷键 QShortcut(QKeySequence(tr("Ctrl+O", "File|Open")),this):构造一个键盘Ctrl+O的快捷键,this是在当前整个窗口 &QShortcut::activated:需要绑定这个信号,用于处理对应的业务 //设置Ctrl+O的快捷键 阅读全文
posted @ 2025-05-09 12:00 站着说话不腰疼 阅读(105) 评论(0) 推荐(0)
摘要:Qt中常用的事件 1、鼠标事件 protected: void mousePressEvent(QMouseEvent *event) override;//鼠标点击事件 void mouseDoubleClickEvent(QMouseEvent *event) override;//鼠标双击事件 阅读全文
posted @ 2025-05-09 12:00 站着说话不腰疼 阅读(28) 评论(0) 推荐(0)