【QT上位机编写第一步】QT5环境搭建和了解C++及类的运用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本章节主要讲的是QT的环境搭建、C++语言基础、C++的类的介绍。写这个文档是博主为了工作学习QT上位机所作


提示:以下是本篇文章正文内容,下面案例可供参考

一、QT5的环境搭建?

1.1.QT5下载

首先是登录qt的网页 添加链接描述
在这里插入图片描述
这里选择5.12版本,点击
在这里插入图片描述
这里我是用的5.12.9的版本,
在这里插入图片描述
这里我用的Windows 系统,直接下载

1.2.QT5安装

首先把我们下载好的qt5软件放到你想放的盘,但是注意路径不能有中文
然后第二步要断开网络,不然安装时他会叫你去他官网注册邮箱。
最后安装成功,这时是没有软件的快捷方式的这时需要我们点击D:\QT\Tools\QtCreator\bin这里面就有QT的软件(注意博主是安装在D盘的)
在这里插入图片描述

二、新建一个C++项目和编写第一个C++程序

2.1.创建项目

第一步是打开QT5软件
在这里插入图片描述
然后点击Projects点击New
在这里插入图片描述
然后是选择Non-Qt project,在然后是选择Plain C++ Application最后点击Choose
在这里插入图片描述
然后跳出一个对话框让你修改项目名称和项目保存路径,此时注意路径和名称不能出现空格或者中文
在这里插入图片描述
默认选择qmake点击下一步
在这里插入图片描述
然后把32bit和64bit两个都勾选

在这里插入图片描述
然后点击下一步是配置项目管理,如果你会用git那就用,不用就选择None,然后点击完成,此时会跳到函数部分
在这里插入图片描述

#include <iostream> //调用库文件  对比 C语言的 <stdio.h>

using namespace std; //申请一个内存空间

int main(void) {
	int num = 100; //定义一个整形数组

	/*
	1. cout() 函数是输出打印函数  对比 C语言的printf
	2.<< 发送数据流  例如 cout << "Hwllow World";
	打印   Hwllow World
	3.endl 是换行意思 对比 c语言的\n
	*/
	cout << num << endl << "Hellow Word!" << endl; 
	//cout << "Hwllow World" ;



	system("pause");
/*system就是调用从程序中调用系统命令(和shell命令)。
  这个必须在return 函数前面
  system("pause")就是从程序里调用“pause”命令;   
  而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press   any   key   to   exit”的字,等待用户按一个键,然后返回。

*/

	return 0;

}

结果打印
在这里插入图片描述

三、C++类的讲解

3.1.类的定义和访问

#include <iostream>
using namespace std;
//直接命名一个类 对比C语言的结构体
class student
{
public:
    char name[20];
    int agr;
    void text();
};
void student::text() {
    sta = 1222;
    cout << sta << endl;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++类里面定义函数+++++++++++++++++++++++++++++++++++++++++++++++++++++++

/* 方法一:  类里面直接定义函数和函数的程序
class student
{
public:
    char name[20];
    int agr;
    void text(){
        cout << "123" <<endl;
    }
};
*/

/* 方法二:  类里面定义函数  函数的程序在外面编写
class student
{
public:
    char name[20];
    int agr;
    void text();
};

void student ::text(){
    cout << "123" <<endl;
}
使用 my.text();
*/
/* 类的访问修饰符
 * public:表示函数和变量是公开的,任何人都可以访问  对比C语言的extern
 * private: 表示函数和变量只能在自己的类里面自己访问自己,不能通过对象来访问,不能通过my.这个对象引用访问
            如何能强行访问 在类里面的函数使用 例如:
class student{
publis:
    void text();
private:
    int sta;

};

void student ::text(){
    sta=100;
    cout << sta <<endl;
}
 *protected:表示函数和变量只能在自己的类里面自己访问自己,但是他能被他派生类访问
*/
int main(void) {
    student my; //直径引用命名一个类
    student* my_1 = new student;//引用命名一个堆里面的类,这个是在堆里面创建
   //delete  my_1; //这个是释放(删除)在堆里面创建的类 注意只能删除堆里面的类 

    my.agr = 100;
    my_1->agr = 65;
    cout << my.agr << endl;
    cout << my_1->agr << endl;
    my.text();
    system("pause");
    return 0;
}

3.2.C++类的重载特性、析构函数和构造函数、类的继承、虚函数和纯虚函数

/*---------------------------------------------------------------------------------------------------------------------------------------------
 * **************************************************类里面的重载特性*****************************************************************************
 *---------------------------------------------------------------------------------------------------------------------------------------------
 * 解释:类函数的重载特性就是说我们可以在类里面定义同名的函数,但是形参必须不同的函数
 * 例如
 class student{
 publis:
    void text();               //两个函数可以命名为同一个名字但是他们的“形参”必须“不同”
    void text(int a,int b);   //调用时会根据形参的类型自动匹配相应的函数

 }
*/



/*---------------------------------------------------------------------------------------------------------------------------------------------
 * **************************************************析构函数和构造函数*****************************************************************************
 *---------------------------------------------------------------------------------------------------------------------------------------------
 * 解释:
 *   析构函数:假如我们定义了析构函数《《当对象被删除或者生命周期结束的时候,就会触发析构函数
 class student{
 publis:
    ~student();
    void text();

 }
 student::~student(){
    cout <<"End" <<endl;
 }
 打印结果是会在结束时打印一个 "End"
 如何后面使用delet删除一个堆里面定义的对象 此时又会运行一次析构函数

 *   构造函数:当对象创建和开始时触发的函数
 class student{
 publis:
    student();
    void text();

 }
 student::student(){
    cout <<"Begin" <<endl;
 }
 打印结果是会首先打印一个 "Begin"
 * 1.构造函数和析构函数必须和类名一模一样
 * 析构函数要在前面加~ 而构造函数不需要
 注意:>>>>构造函数可以被重载,,但是析构不能<<<<
*/


/*---------------------------------------------------------------------------------------------------------------------------------------------
 * **************************************************类的继承*****************************************************************************
 *---------------------------------------------------------------------------------------------------------------------------------------------
 * 解释:类的继承允许我们新的类里面继承父类 ,只能public还有protected 部分定义的类“能”继承父类,而private定义的类“不能”继承父类
 * 定义函数模板
 class 儿子 public 父亲{
  public:
        定义变量或者函数
  //或者
  protected:
        定义的变量或者函数
 };
 例如
class othrt_student public student{
public:
    int grade;

};
调用访问也是和类一样的
 other_student my2;
 my2.grade=100;
 然后my2也继承了student里面的变量和函数
 my2.agr=100;
 */

 /*---------------------------------------------------------------------------------------------------------------------------------------------
  * **************************************************虚函数和纯虚函数*****************************************************************************
  *---------------------------------------------------------------------------------------------------------------------------------------------
  * 虚函数:有实际定义的,允许 派生类对他进行覆盖的替换,virual来修饰
  * 纯虚函数:没有实际定义的,
  * 如何定义一个虚函数
  *      用virual关键字修饰,虚函数是用来类的继承上的
  例如
  class student{
  publis:
     virual void text(){   //函数里面有程序的是虚函数
         int i=100;
         cout << i <<endl;
     }
    virual void text_a(){}  //函数里面没有程序的是纯虚函数
  };
  *
  *
 */

总结

其实C++大部分都有C的影子,只要你C语言不憋,那么你学习C++就不能很难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片有机机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值