🌳命名规范🌳
类名:首字母大写,单词和单词之间首字母大写
函数名、变量名:首字母小写,单词和单词之间首字母大写
⚡️快捷键⚡️
操作 | 快捷键 | 操作 | 快捷键 | 操作 | 快捷键 |
---|---|---|---|---|---|
运行 | ctrl +r | 注释 | ctrl +/ | 整行移动 | ctrl +shift +↑ 或↓ |
编译 | ctrl +b | 查找 | ctrl +f | 字体缩放 | ctrl +鼠标滚轮 |
自动对齐 | ctrl +i | 帮助文档 | F1 | 同名.h和.cpp切换 | F4 |
☀️C++基础☀️
该部分是我在学习过程中记下的笔记,大家也可以跳转到视频观看
【北京迅为】嵌入式学习之QT学习篇
☁️C++的灵魂,类
类大家可以把它看成C语言结构体的升级版。类的成员不仅可以是变量,也可以是函数。
如何定义一个类
class student
{
public:
char name[64];
char age;
}
☁️对象
对象是类的实例化,定义方法如下:
直接定义
student my;//student就是类,my就是对象
在堆里定义
student *my =new student
删除对象
delete my;//只能删除在堆里定义的对象,目的是删除堆里的内存
🐐如何访问类的成员
访问方法和C一样,普通变量通过.
来访问,指针通过->
🐬类的函数成员🐋
类中不仅可以是变量,也可以是函数。
第一步:在类里面声明
第二步:实现这个函数。我们可以直接写在类里面,也可以写在类的外面。
直接写在类的里面:
class student
{
public:
char name[64];
int age;
void test(){
cout<<123<<endl;//打印函数,打印123
}
}
写在外面
class student
{
public:
char name[64];
int age;
void test();
}
//student::表示继承于student类,是该类中的一个函数,不加会被识别为普通函数
void student::test(){
cout<<123<<endl;//打印函数,打印123
}
访问函数和访问变量是一样的,都是用
.
来访问
☁️类的访问修饰符
就是对类的成员进行权限管理
public
:表示函数变量是公开的,任何人都可以访问
private
:表示函数和变量只能在自己的类中访问自己,不能通过对象来访问。
问:能否强行访问?
答案:可以。可以通过类中的函数调用private
变量来强行访问
protected
:表示函数只能在自己的类中访问自己,但是也可以被派生类来访问
☁️类函数的重载特性
类函数的重载特性就是说我们可以在类里面定义同名函数,但是参数不同的函数。
class student
{
public:
char name[64];
int age;
void test();
void test(int a);
}
//student::表示继承于student类,是该类中的一个函数,不加会被识别为普通函数
void student::test(){
cout<<123<<endl;//打印函数,打印123
}
重载函数在调用时,会根据参数类型,自动选择一个函数进行调用
☁️构造函数和析构函数
析构函数:假如我们定义了析构函数,当对象被删除或者生命周期结束时,就会触发析构函数。
构造函数:假如我们定义了构造函数,就会触发这个构造函数
注意
- 构造函数和析构函数必须要和类名一致
- 析构函数要在前面加一个
~
- 构造函数能够被重载,析构函数不能被重载
举例
class student
{
public:
student();
~student();
char name[64];
int age;
void test();
void test(int a);
}
//student::表示继承于student类,是该类中的一个函数,不加会被识别为普通函数
void student::test(){
cout<<123<<endl;//打印函数,打印123
}
void student::student(){ //构造函数
cout<<"hello"<<endl;
}
void student::~student(){ //析构函数
cout<<"bey"<<endl;
}
☁️类的继承
类的继承允许我们在新的类里面继承父类public
和protected
部分,private部分时并不能被继承的
当我们觉得类不好的时候,可以通过类的继承添加我们需要的功能
class 儿子:public粑粑{
public:
.......
protected:
}
例子:
class MyStudent:public Student{
public:
int grade;
}
☁️虚函数和纯虚函数
- 虚函数:有实际定义,允许派生类对他覆盖式的替换,
virtual
来修饰。 - 纯虚函数:没有实际定义的虚函数就是纯虚函数。
虚函数:
virtual test{
cout<<123<<endl;
}
纯虚函数:
virtual test{}
虚函数的好处就是预留接口,方便分工合作
💌新建工程代码分析💌
创建工程时,注意不要有中文路径
.pro
文件,整个工程文件基本上不需要我们去修改,需要我们操作的只有添加我们需要的QT模块。
注意:在.pro
文件中,#
为注释,\
为换行
.cpp
文件,最后的a.exec()
,使程序进入一个死循环,用于监听整个窗口,直到点击关闭窗口。
.h
文件