
C++
Heaphaestus,RC
这个作者很懒,什么都没留下…
展开
-
【C++】虚表与虚表指针,虚基类表与虚基类表指针
虚函数表指针和虚基表指针对比原创 2020-03-05 15:14:57 · 3698 阅读 · 0 评论 -
C++:四种类型转换符
C语言中的类型转换只需要在变量名前加上想要转化成的变量类型即可;如://c风格的类型转换int a = 1;double b = 1.1a = (double)b;b = (int) a;但是这种简单的转换方式有一些缺陷:转换过于随意;C风格的类型转换在时,没有任何的限制,容易引起一些未知的问题;C风格的类型转换没有统一的关键字和提示符。在代码较多的情况下,排查时容易忽略;...原创 2019-12-07 17:43:54 · 325 阅读 · 0 评论 -
shared_ptr智能指针缺陷的解决方法
在上一篇博客C++:智能指针中详细介绍了C++中的一些智能指针,其中,shared_ptr智能指针有三个缺陷:线程不安全;不能管理malloc出来的资源,不能管理文件指针;可能会产生循环引用的问题;第三个缺陷(循环引用)的解决方法在C++:智能指针这篇博客中已经解决了;本篇博客主要介绍第一和第二中缺陷的解决方法;目录: 1...原创 2019-10-18 18:32:59 · 2695 阅读 · 0 评论 -
C++:智能指针
RAII是什么?RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。智能指针(std::shared_ptr和std::unique_ptr)即RAII最具代表的实现,使用智能指针,可以实现自动的内存管理,再也不需要担心忘记delete造成的内存泄漏。毫不夸张的来讲,有...原创 2019-10-09 23:25:50 · 907 阅读 · 1 评论 -
C++特性之多态
什么是多态?原创 2019-07-24 00:21:31 · 168 阅读 · 0 评论 -
C++:动态绑定和静态绑定
静态类型和动态类型静态类型和动态类型是针对于对象来说的:对象的静态类型:就是它在程序中被声明时所采用的类型(或理解为类型指针或引用的字面类型),在编译期确定;对象的动态类型:是指类型指针或引用的实际类型,在运行期确定;静态绑定和动态绑定静态绑定又称为前期绑定(早绑定),在程序编译期间确定了程序的行为,也称为静态多态,比如:函数重载;动态绑定又称后期绑定(晚绑定),是在程序运行期间...原创 2019-07-23 19:44:35 · 267 阅读 · 0 评论 -
C++特性之继承
1.继承的概念及定义2.基类和派生类对象赋值转换4.继承中的作用域5.派生类的默认成员函数6.继承与友元7.继承与静态成员8.复杂的菱形继承及菱形虚拟继承9.继承的总结和反思...原创 2019-05-16 22:06:45 · 230 阅读 · 0 评论 -
C++:动态内存管理方式
占位原创 2019-05-10 23:00:45 · 263 阅读 · 0 评论 -
new和delete的底层实现原理
- new/new[]和delete/delete[]是什么?new/new[]和delete/delete[]是操作符;是C++用来实现动态内存管理的操作符;new/new[] 操作符是用来申请空间的;delete/delete[]操作数是用来释放动态申请出来的空间;- new/delete的实现原理new和delete是用户进行动态内存申请和释放的操作符,operator new...原创 2019-05-10 22:57:42 · 6364 阅读 · 0 评论 -
C++:空类和空结构体的大小为1的原因
对于空结构体和空类大小是1这个问题,首先这是一个C++问题,在C语言下空结构体大小为0(当然这是编译器相关的)。这里的空类和空结构体是指类或结构体中没有任何成员。在C++下,空类和空结构体的大小是1(编译器相关),这是为什么呢?为什么不是0?这是因为,C++标准中规定:“no object shall have the same address in memory as any ot...转载 2019-04-17 23:34:43 · 479 阅读 · 0 评论 -
C++:浅拷贝的解决方法(深拷贝(传统写法,现代写法),写时拷贝)
什么是浅拷贝?第一种方法:深拷贝(传统方法)第二种方法:深拷贝(现代简洁方法)第三中方法:写时拷贝原创 2019-04-20 23:06:38 · 980 阅读 · 0 评论 -
C++:C++入门知识总结
C++C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++有四大特性:抽象,封装,继承,多态。 这些特性将会在后面的博客中详细解释。在这篇博客中主要总结一下C++入门的基础知识;1.C++文件的命名方式创建C++工程的文件的命名方式与C语言不同,C文件的后缀为:.c ,而C+...原创 2019-03-21 18:03:07 · 317 阅读 · 0 评论