自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 C++核心编程(4)——类和对象

c++面对对象的三大特性:封装,继承和多态封装的意义:将属性和行为作为一个整体,表现生活中的事务将属性和行为加以权限控制语法:class 类型{访问权限:属性/行为}访问权限:1.公共public:类内可以访问,内外也可以访问2.保护权限protected:类内可以访问,内外也可以访问3. private:类内可以访问,内外也可以访问在c++中strcut和class的唯一区别就是默认的访问权限区别:strcut:默认为publiccla...

2022-04-24 09:40:37 124

原创 C++核心编程(3)——函数重载

作用:函数名可以相同,提高复用性满足条件:1.同一个作用域下2.函数名称相同3.函数参数类型不同或者个数不同或者顺序不同注意:函数#include <iostream>#include <ostream>using namespace std;#include <string>void func(int &a){ cout << "func1(int &a)的调用" << endl;}.

2022-04-19 14:25:29 479

原创 C++核心编程(2)——引用

作用:给变量起别名语法:数据类型 &别名=原名注意事项:1.引用必须初始化2.引用在初始化后,不可以改变:引用是一个的别名,就不能称为别的别名引用做函数参数:作用:函数传参时,可以利用引用的技术让形参修饰形参优点:可以简化指针引用做函数返回值:注意:不要返回局部变量的引用用法:函数调用左右左值;引用的本质:引用的本质在c++的内部是一个指针常量发现是引用:转换为int * const ref=&a;常量引用...

2022-04-19 13:48:36 762

原创 c++核心编程(1) 内存四区

c++在程序运行时,将内存大方向分为四个区域1.代码区:存放函数的二进制代码,由操作系统进行管路2.全局区:包含全局变量,静态变量以及字符串常量及其他常量3.栈区:由编译器自动分配和释放,主要是函数的参数值和局部变量4.堆区:由程序员进行分配和释放,若程序员不释放,在程序运行后由操作系统进行回收1.程序运行前:程序编译后,生成了exe的可执行程序,未执行该程序时:代码区:存放CPU执行的机器指令共享:对于被频繁执行的程序,只需要在内存中有一份代码即可只读:防止程

2022-04-19 09:23:16 126

原创 Qt插件——QWT的使用(1)——安装和配置

目录1.前言2.下载最新的QWT3.安装及编译3.1 解压后的目录3.2 编译控件4.使用方法4.1新建一个文件4.2 导入库1.前言qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等,目...

2022-03-11 14:36:24 2997 1

原创 Qt系统阻塞

Qt系统阻塞,qt系统退出时提示用户保存

2022-03-07 23:23:09 493

原创 qt上位机串口Modbus编程

目录1.串口1.1 串口的定于1.2 串口的分类串口通讯(Serial communications):串口按位(bit)发送和接受字节。modbus:一种串行通讯协议,已成为工业领域通讯协议得业界标准。是工业电子设备之家常用的连接方式1.串口1.1 串口的定于串口(Serial port):也叫做串行通讯接口(通常指COM口),串口通信是指采用串行通讯协议在一条信号线上将数据一个比特一个比特地依次进行传输的通信模式。特点是通信线路简单,传送速度较慢。.

2022-01-18 01:00:00 2199 1

原创 c++学习之路——文件操作

c++对文件操作需要包含头文件<fstream>文件类型分为两种:1.文本文件:ASCII的形式储存在计算机中2.二进制文件:以二进制储存在计算机中操作文件的三大类1.ofstream:写2.ifstream:读3.fstream:读#include <iostream>using namespace std;#include <fstream>#include <string>//1.包含头文件#incl.

2021-12-28 15:30:44 473

原创 C++学习之路多态——纯虚函数和抽象类

在多态中,父类中的虚函数毫无意义,主要是调用子类中的内容,因此可以将其写为纯虚函数纯虚函数的语法:virtual 返回值类型 函数名 (参数列表)=0;当类中有了纯虚函数,这个类也称为抽象类抽象类对象:无法实例化对象 子类必须重写抽象类的纯虚函数,否则也属于纯虚函数多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码解决方式:将父类中的析构函数改为虚析构或者纯虚析构虚析构和纯虚析构的共性:可以解决父类对象释放子类对象; 都需要有具体.

2021-12-28 14:07:03 425

原创 c++学习之路——重载运算符之比较运算符

#include <iostream>#include <string>using namespace std;class person {public: person(string name,int age) { m_name = name; m_age = age; } bool operator==(person &p) { if (this->m_age == p.m_age && this->m_nam.

2021-12-21 19:06:16 787

原创 c++学习之路——赋值运算符重载

#include <iostream>#include <string>using namespace std;class person {public: person(int age) { //将年龄数据开辟到堆区 m_A = new int(age); } ~person() { if(m_A != NULL) { delete m_A; m_A = NULL; } } //重载赋值运算符 person& ope.

2021-12-21 18:41:30 330

原创 c++学习之路——运算符重载赋值运算符

1.前置运算符重载#include <iostream>#include <string>using namespace std;class myInt{ friend ostream& operator<<(ostream &cout, myInt &m1);public: myInt() { m_A = 10; } //前置递增 myInt& operator++() { //先增加 ++m.

2021-12-21 16:49:02 577

原创 c++运算符重载——左移运算符

语法:operator<<;作用:可以输出自定义#include <iostream>#include <string>using namespace std;class person { friend ostream& operator<<(ostream &cout, person &p);public: person(int a,int b) { m_A = a; m_B = b; }priv

2021-12-21 13:56:50 181

原创 运算符重载-加号运算符重载

#include <iostream>#include <string>using namespace std;class person{public: //通过成员函数实现重载 person operator+(person &p) { person temp; temp.m_A = this->m_A + p.m_A; temp.m_b = this->m_b + p.m_b; return temp; } int m_.

2021-12-21 13:14:32 78

原创 c++学习之路——成员函数做友元

#include <iostream>#include <string>using namespace std;class Building;class goodgay;class goodgay{public: goodgay(); void visit1(); void visit2();public: Building * building;};class Building{ friend void goodgay::visit2().

2021-12-21 11:34:36 419

原创 C++学习之路——类做友元

#include <iostream>#include <string>using namespace std;class Building{ friend class goodgay;public: Building() { m_bedroom = "卧室"; m_setroom = "客厅"; cout << "Building的构造函数的调用" << endl; } ~Building() { cout &...

2021-12-21 10:18:29 364

原创 c++学习之路——类和对象中的const修饰成员函数

常函数:成员函数后加const称之为常函数 常函数不可以修改成员属性 成员属性声明时加上关键字mutable后,在常函数中依旧可以修改常对象:声明对象前加const称该对象为常对象 常对象只能调用常函数#include<iostream>using namespace std;#include<string>//常函数class person{public: //this指针的本质是指针常量,指针的指向是不可以修改的 //thi...

2021-12-16 12:27:17 879

原创 C++学习之路——空指针访问成员函数

c++中空指针也是可以调用成员函数的,但是需要注意有没有用到this指针;#include<iostream>using namespace std;#include<string>//空指针调用成员函数class person{public: void showclassName() { cout << "this is person" << endl; } void showPersonAge() { //报错的原因

2021-12-16 11:32:32 892

原创 C++学习之路——this指针概念

c++成员变量和成员函数是分开存储的每一个非静态成员函数只会诞生一份函数实例,同类型的对象会公用一份代码this指针指向被调用的成员函数所属的对象this指针是隐含每一个非静态成员函数的一种指针 this指针不需要定义,直接使用即可用途:形参和成员变量重名时,可以用this指针来区分; 在类的非静态成员 函数中返回对象本身,可使用return *this;#include<iostream>using namespace std;#include..

2021-12-16 10:48:47 846

原创 C++学习之路——对象模型和this指针

成员变量和成员函数分开储存在c++中 ,类内的成员变量和成员函数分开储存只有非静态成员变量才属于类的对象上#include<iostream>using namespace std;#include<string>//成员变量和成员函数分开存储class person1{};class person2{ int m_A;//非静态成员变量:属于类的对象的数据上 static int m_B; //静态成员对象:不属于类的对象上 void func(

2021-12-15 20:12:11 70

原创 C++学习之路——静态成员

静态成员:在成员变量和成员函数前加上关键字static,称为静态成员静态成员变量:所有对象共享同一份数据 在编译阶段分配内存 类内声明,类外初始化静态成员函数:所有对象共享同一个函数 静态成员函数只能访问静态成员变量#include<iostream>using namespace std;#include<string>//静态成员函数//所有对象共享同一个函数//静态成员函数只能访问静态成员变量class person{pub.

2021-12-15 19:23:28 202

原创 C++学习之路——类对象作为类的成员

c++允许类中对象作为类的成员,我们称之为对象成员#include<iostream>using namespace std;class A{};class B{ A a;};//B类中有对象A作为成员,A为对象成员#include<iostream>using namespace std;#include<string>class phone{public: phone(string pName) { m_pName = p

2021-12-15 12:58:26 278

原创 C++学习之路——初始化列表

作用:对类中的对象进行初始化语法:构造函数():属性1(值1),属性2(值2),属性3(值3){}1.传统的初始化操作#include<iostream>using namespace std;class person{public: //传统的初始化操作 person(int a, int b, int c) { m_A = a; m_B = b; m_C = c; } int m_A; int m_B; int m_C;};2.初始化

2021-12-15 11:53:34 54

原创 C++学习之路——深拷贝与浅拷贝

浅拷贝:编译器默认的拷贝函数(带来的问题,堆区的内存重复释放)深拷贝:重新在堆区再开辟一块内存,进行拷贝操作析构函数:如果堆区有内存,就要在析构代码中把堆区的释放干净#include<iostream>using namespace std;class person {public: person(int age,int height) { m_age = age; m_height = new int(height); cout << "

2021-12-15 10:33:57 72

原创 c++学习之路——构造函数调用规则

默认情况下,c++至少给一个类添加三个函数默认构造函数(无参,函数体为空) 默认析构函数(无参,函数体为空) 默认拷贝函数,对属性进行拷贝构造函数调用规则如下:如果用户定义有参构造函数,c++不再提供默认构造函数,但是会提供默认拷贝函数 如果用户定义了拷贝构造函数,c++不再提供其他构造函数...

2021-12-14 12:30:14 191

原创 c++学习之路——拷贝构造函数的调时机

c++中拷贝构造函数的调用时机有三种情况:使用一个已经创建完成的对象来初始化一个新对象 值传递的方式给函数参数传值 以值方式返回局部对象1.创建一个新对象#include<iostream>using namespace std;class person {public: person() { cout << "person的默认的构造函数的调用" << endl; } person(int num) { m_age = n.

2021-12-14 10:41:34 124

原创 C++学习之路——构造函数的分类和调用

c++拷贝构造的分类和调用

2021-12-14 10:03:19 246

原创 c++学习之路——对象的初始化和清理

C++学习笔记

2021-12-14 09:14:54 216

原创 QT学习之路1-QfileDialog对话跨

1.选择打开已有目录QString curpath=QDir::currentPath();QString Dirname=QFileDialog::getExistingDirectory(this,"打开目录",curpath);QMessageBox::information(this,"打开文件","选择的文件是:"+Dirname);ui->lineEdit->setText(Dirname);2选择打开一个文件QString curpath=QDir::currentP

2021-10-21 15:39:09 59

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除