C++
吴俊荣
我是一个非常非常懒的人
展开
-
C++_知识点——const 作用及用法
1.const 修饰普通变量或者成员变量,定义成 const 常量,相较于宏常量可进行类型检查,节省内存空间,提高了效率。2.const 修饰函数参数,使得传递过来的函数参数的值不能改变。3.const 修饰成员函数,使得成员函数不能修改任何类型的成员变量(mutable 修饰的变量除外),也不能调用非 const 成员函数,因为非 const 成员函数可能会修改成员变量。原创 2023-11-20 16:28:31 · 98 阅读 · 0 评论 -
C++_知识点——虚函数的实现机制
带有虚函数的类,通过该类所隐含的虚函数表来实现多态机制,该类的每个对象均具有一个指向本类虚函数表的指针,这一点并非 C++ 标准所要求的,而是编译器所采用的内部处理方式。vptr 在创建类实例时自动设置,以便指向该类的虚拟表。虚函数的地址保存在虚函数表中,在类的对象所在的内存空间中,保存了指向虚函数表的指针(称为“虚表指针”),通过虚表指针可以找到类对应的虚函数表。虚函数表解决了基类和派生类的继承问题和类中成员函数的覆盖问题,当用基类的指针来操作一个派生类的时候,这张虚函数表就指明了实际应该调用的函数。原创 2023-11-20 15:15:50 · 73 阅读 · 0 评论 -
C++_知识点——构造函数、析构函数是否可以定义成虚函数
1.从存储空间的角度考虑:构造函数是在实例化对象的时候进行调用,如果此时将构造函数定义成虚函数,需要通过访问该对象所在的内存空间才能进行虚函数的调用(因为需要通过指向虚函数表的指针调用虚函数表,虽然虚函数表在编译时就有了,但是没有虚函数的指针,虚函数的指针只有在创建了对象才有),但是此时该对象还未创建,便无法进行虚函数的调用。所以构造函数不能定义成虚函数。2.从使用的角度考虑:虚函数是基类的指针指向派生类的对象时,通过该指针实现对派生类的虚函数的调用,构造函数是在创建对象时自动调用的。原创 2023-11-20 14:48:39 · 410 阅读 · 0 评论 -
C++_知识点——拷贝构造函数必须声明为引用
相当于 ex1 作为函数 A(const A tmp) 的实参,在参数传递时相当于 A tmp = ex1,因为 tmp 没有被初始化,所以在 A tmp = ex1 中继续调用拷贝构造函数,接下来的是构造 tmp,也就是 tmp.A(ex1) ,必然又会有 ex1 作为函数 A(const A tmp);其中中间的 2 种声明可能会使用复制构造函数直接创建 metoo 和 also ,也可能使用复制构造函数生成一个临时对象,然后将临时对象的内容赋给 metoo 和 also,这取决于具体的实现。原创 2023-11-20 14:32:18 · 82 阅读 · 0 评论 -
C++_知识点——菱形继承(虚继承)
C++_知识点——菱形继承(虚继承)原创 2023-03-16 14:45:44 · 31 阅读 · 0 评论 -
C++_知识点——浅拷贝和深拷贝
C++_知识点——浅拷贝和深拷贝原创 2023-03-16 14:03:20 · 58 阅读 · 0 评论 -
C++_知识点——reinterpret_cast
C++_知识点——reinterpret_cast原创 2023-03-16 10:55:42 · 89 阅读 · 0 评论 -
C++_知识点——static_cast
C++_知识点——static_cast原创 2023-03-14 17:56:00 · 98 阅读 · 0 评论 -
C++_知识点——const_cast
C++_知识点——const_cast原创 2023-03-14 17:09:15 · 43 阅读 · 0 评论 -
C++_知识点——dynamic_cast
C++_知识点——dynamic_cast原创 2023-03-14 17:00:29 · 106 阅读 · 0 评论 -
C++_知识点——断言
C++_知识点——断言原创 2023-03-14 15:15:15 · 129 阅读 · 0 评论 -
C++_知识点——内存对齐
C++_知识点——内存对齐问题原创 2023-03-14 14:41:11 · 37 阅读 · 0 评论 -
C++_知识点——模板泛化,特化和偏特化
C++_知识点——模板泛化原创 2023-03-14 11:06:07 · 108 阅读 · 0 评论 -
C++_知识点——常量指针和指针常量
C++_知识点——常量指针和指针常量原创 2023-03-14 10:35:30 · 32 阅读 · 0 评论 -
C++_知识点——虚函数
C++_知识点——虚函数原创 2023-03-13 14:48:41 · 362 阅读 · 0 评论 -
C++_知识点——虚析构
C++_知识点——虚析构原创 2023-03-10 16:06:53 · 40 阅读 · 0 评论 -
C++_知识点——指针和引用
C++_知识点——指针和引用原创 2023-03-10 15:42:06 · 36 阅读 · 0 评论 -
C++_知识点——右值引用
C++_知识点——右值引用原创 2023-03-10 14:23:45 · 49 阅读 · 0 评论 -
C++_知识点——new和malloc
C++_知识点——new和malloc原创 2023-03-10 13:45:35 · 151 阅读 · 0 评论