提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本章节主要讲的是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++就不能很难。