![](https://img-blog.csdnimg.cn/direct/7f5b8e4922b04dbc83807664804a8f04.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C艹
围绕C++、QT展开讨论,讲解C艹基础及面试重点问题
玳王让我来巡山
花有重开日,人无在少年
展开
-
一.面向对象的三大特性在C++是怎样的
这三大特性共同构成了面向对象编程的基础,通过它们可以实现代码的模块化、复用性和可维护性,提高程序的可读性和可靠性。在 C++ 中,面向对象编程的三大特性是封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。如果满足虚函数,编译器会调用指针指向对象的虚函数,和指针类型无关,;1.2虚函数:virtual,虚函数只能在类内定义只能是类内的非静态成员函数。1.3虚函数的重写:子类、父类拥有相同的函数名、参数、返回值,//父类指针指向子类。原创 2024-03-21 00:17:35 · 499 阅读 · 2 评论 -
二.多态中的虚函数指针、虚函数表
当子类用保护、私有继承父类时,父类指针不能指向子类对象,因为父类指针本质上是指向子类对象从父类继承过来的内容空间,这部分内容现在是私有、或者保护,不允许被其他指针指向;在编译是,在初始化构造函数时会生成一个虚函数指针,满足多态时,会根据指针找到对应对象虚函数表,然后在表内找到对应的虚函数地址,访问这个虚函数。多态:不同的对象调用同一函数,展现不同的形态,满足多态的函数调用是根据对象的虚函数表,虚函数表是编译时确认。指向子类对象的子类指针指向的空间包含指向子类对象的父类指针指向的空间。原创 2024-03-21 00:33:08 · 331 阅读 · 1 评论 -
三、C语言中的struct,C++中的struct、class区别
C语言中的struct,C++中的struct、class区别原创 2024-03-24 21:39:55 · 293 阅读 · 1 评论 -
四、函数指针的使用
如果在类内调用,需要指定this,类外需要有指定的对象,因为需要实际内存空间。函数指针:函数指针指向函数的地址,是个指针变量,本质是个指针变量。类内函数指针的定义需要指定作用域,不是本作用域下不可用,例如。指针函数:返回值为指针的函数,本质还是个函数。非类内函数指针不需要指定作用域。原创 2024-03-25 11:21:03 · 349 阅读 · 1 评论 -
五.指针和引用的异同点
在32位系统中,一个指针变量的返回值为4字节,64位系统中指针变量的sizeof结果为8字节。2.赋值:引用在定义时必须进行初始化,不可以再引用其他变量,相当于被绑定在初始化的变量上。5.函数形参效率:需要分别一块内存空间,内容为另一块内存的地址,指向变量的地址。3.sizeof:是指针的大小,指针变量的位宽等于机器字长,机器字长由。2.赋值:指针在初始化后,可以再重新赋值,指向其他内存空间。1.内存方面:指针是一个变量,存储的是另一块内存的地址。1.内存方面:引用是另一块内存变量的别名,是一个东西。原创 2024-03-26 23:01:50 · 363 阅读 · 1 评论 -
六、构造函数、析构函数
4、若未定义构造函数,系统将会调用无参 默认构造函数,不会对任何参数进行初始化,定义后就不再调用无参 默认构造函数。3、构造函数是一种特殊的成员函数,无需手动调用,当定义对象时自动调用。2、析构函数无参数,无返回值,函数名和类名相同,没有重载函数。2、构造函数可以有参数、重载,无返回值,函数名和类名相同。1、C++提供构造函数对成员进行初始化操作。1、析构函数进行销毁分配的储存空间。原创 2024-03-30 16:48:16 · 265 阅读 · 0 评论 -
七、C++锁的使用
在std::lock_guard基础上,可以手动对锁进行操作,std::unique_lock比std::lock_guard灵活,但是效率低,占用内存多点。使用std::lock_guard、std::unique_lock方便对线程进行加锁解锁,对std::mutex进行维护使用,不用再手动进行上锁加锁。C++11提出,维护mutex的模板,自动管理互斥锁,构造函数内对锁进行加锁,析构时进行解锁,避免出现死锁、资源泄漏的情况。2.condition_variable.notify_all()通知所有。原创 2024-03-31 22:34:31 · 383 阅读 · 1 评论