QT快速上手_笔记一

6 篇文章 0 订阅

1.需要补习的C++知识

类,派生,父类子类

StackDlg::StackDlg(QWidget *parent)
    : QDialog(parent)
对应语法:

        派生类::派生类构造函数(总参数列表):基类构造函数(参数列表)  //基类构造函数的参数列表是实参。
{
派生类中的数据成员初始化;

} 

构造函数&析构函数

构造函数在对象实例化时被系统自动调用,仅且调用一次。定义类时,如果没有定义构造函数和析构函数,编译器会自动生成一个构造函数和析构函数,只是内部为空。
构造函数的名称与类的名称是完全相同,无任何范返回类型(void 也不行)。构造函数可用于为某些成员变量设置初始值。构造函数也可以带有参数
析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,目的是释放资源。
写法如下

#include <iostream>
using namespace std;
class Demo
{
    public:
        Demo(); //构造函数
        ~Demo(); // 析构函数
};
Demo::Demo()
{
    cout << "构造函数" << endl;
}
Demo::~Demo() 
{
    cout << "析构函数"<<endl;
}

继承

继承目的就是站在基础类上扩展更多的功能。比如QT里的QLabel和QLineEdit都是继承的QWidget类。实现了更多个细化的功能。继承有公有,私有保护的继承方式

容器

对象

友元

this指针

this 指针记录对象的内存地址,比如一个类内部有一个this,这个类的实例对象中,this就是指向这个对象。这也是为什么只有类的成员函数才能有this这个玩意了,其实和python的self有着相同之处。

虚函数 纯虚函数 多态

new

new 出来的对象都是匿名,没有名字,然后需要一个指针来指向它,再借助指针访问其成员变量。对象指针后可通过->来指向成员变量和成员函数

堆和栈

堆,英文是 heap,在内存管理的语境下,指的是动态分配内存的区域。这个堆跟数据结构里的堆不是一回事。这里的内存,被分配之后需要手工释放,否则,就会造成内存泄漏。C++ 标准里一个相关概念是自由存储区,英文是 free store,特指使用 newdelete 来分配和释放内存的区域。一般而言,这是堆的一个子集:

  • newdelete 操作的区域是 free store
  • mallocfree 操作的区域是 heap

newdelete 通常底层使用 mallocfree 来实现,所以 free store 也是 heap。鉴于对其区分的实际意义并不大,在本专栏里,除非另有特殊说明,我会只使用堆这一术语。
栈,英文是 stack,在内存管理的语境下,指的是函数调用过程中产生的本地变量和调用数据的区域。这个栈和数据结构里的栈高度相似,都满足“后进先出”(last-in-first-out 或 LIFO)。
实例对象的时候,使用New实例的都是在堆里,使用 className objName的是在栈区实例化

重载

重载就是同名函数,但是参数列表不一样。然后调用的时候会根据参数来选择最合适的函数

重载分为函数重载运算重载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值