XuSenfeng

个人站

复读了,更新随缘,有的文件不全或者图片缺失具体看我的笔记库(https://github.com/XuSenfeng/note)


QT简介 C++基础

目录

QT简介

是一个C++开发库, 可以跨多个平台

官网www.qt.io

可以使用Qt Creator进行开发

使用C++17标准

C++ 基础

class 类名
{
public: 
	共有数据
protected:
	保护数据
private:
	私有数据
};		

在不写关键字的时候默认是私有数据, 默认情况下只能访问一个对象的公有属性

  • 构造函数, 析构函数

有一个和类名相同没有返回值的函数

class Dog
{
    public:
    	Dog();
};
  • 析构函数
class Dog
{
    public:
    	~Dog();
};

在内存被释放或者程序结束的时候调用的函数

  • 类的继承
class Animal
{
public:
    string name;
};
        
class Dog :public Animal
{
public:

private:

};

设置为使用public形式进行继承, 基类之中的私有属性不会被继承, 只会继承public/protected, 所有的属性会保存父类的属性, 子类之中函数不能调用父类的私有属性

使用保护继承, 所有继承到的属性都是public属性, 只会继承public/protected, 同样不能访问对象的私有属性,但是可以在类中函数中访问别的两种属性

私有继承, 所有继承到的属性都会变为private, 在类中不能访问所有基类中的成员

  • 函数重载

在同一个作用域中, 有相同的函数名, 但是函数的参数的类型, 个数, 顺序不同, 或者返回不同的时候叫做函数的重载

  • 使用new进行申请堆区, 使用delete进行删除
//从堆中实例化对象
Dog *dog2 = new Dog;
dog2->age = 3;

cout << dog2->age << endl;
cout << dog1.name <<endl;

cout << "Hello World!" << endl;
delete dog2;
return 0;

类型转换

C++增加了四个static_cast, dynamic_cast, const_cast, reinterpret_cast

使用的语法为xxxx_cast(expression)

  • static_cast

是一种静态转换, 编译的时候就可以确定装换, 可以完成C语言中的大部分工作

不能转换掉const, volitale, 或者__unsigned的属性

  • dynamic_cast

动态转换函数, 和静态转换相对, 只能对指针和引用进行转换, 用于类继承结构中的基类派生类指针引用之间的转换, 在运行的时候还会进行类型检查, 只有是继承关系的类之间才会进行转换, 并且继承的类之中有虚函数的存在

  • const_cast

用于修饰不会修改的变量

  • reinterpret_cast

不同类型之间的转换, 或者指针数字之间的转换