c++
文章平均质量分 86
ZOEATER
这个作者很懒,什么都没留下…
展开
-
C++对象模型——Function语意学
文章目录前言一、Member的各种调用方式二、虚拟成员函数三、函数的效能四、指向Member Function的指针前言本章主要介绍了各种成员函数的调用方式,特别是存在继承和多态时的虚函数调用。成员函数可以被看作是类作用域的全局函数, 不在对象分配的空间里,而存在于代码段, 只有虚函数才会在类对象里有一个指针, 存放虚函数的地址等相关信息(即虚函数表)。调用成员函数时,类对象的地址通过this指针作为参数隐式传递给成员函数,成员函数通过对象地址隐式访问成员变量。this指针是由编译器生成,当类的非原创 2021-06-27 18:36:46 · 349 阅读 · 0 评论 -
C++对象模型——Data语意学
文章目录前言一、对象的内存布局二、Data Member的绑定三、Data Member的布局四、Data Mmber的存取五、继承与Data Member六、指向Data Members的指针前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、对象的内存布局1、空类也有 1Byte 的大小,因为这样才能使得这个 class 的 o原创 2021-06-27 18:20:44 · 869 阅读 · 0 评论 -
C++对象模型——构造函数语意学
文章目录前言一、默认构造函数的构造操作二、拷贝构造函数的构造操作三、程序转化语意学前言本章主要介绍了编译器何时会合成构造函数以及构造一个对象的过程。一、默认构造函数的构造操作(1)关键词explicit之所以被导入这个语言,就是为了给程序员提供一种方法,使他们能够制止”单一参数的constructor“被当作一个conversion运算符。(2)默认构造函数只有在编译器需要它的时候才会被合成出来,也就是是说合成出来的默认构造函数一定是nontrivial的,而trivial的默认构造函数只存在原创 2021-06-27 18:13:41 · 226 阅读 · 0 评论 -
C++对象模型——关于对象
文章目录前言一、加上封装后,布局成本增加了多少?二、C++的对象模型三、struct关键字四、对象的差异前言最近在学习《深度探索C++对象模型》,真心觉得这是一本很不错的书籍,看了之后觉得自己对对象的内存布局、构造、析构操作以及虚函数的调用等有了进一步的了解,对于一些C++规则存在的内在原因也算是知其所以然了。比如说C++2.0之前要求inline函数“类内声明,类外定义”,原因是在C++早期的编译器上,如果inline函数中存取的data member在该函数之后声明,则data member的绑定原创 2021-06-27 18:01:05 · 210 阅读 · 0 评论 -
c标准库函数——system()
c标准库函数——system()声明:int system(const char *command)command为请求执行的shell命令构成的字符数组。使用:char command[50]; strcpy( command, "ls -l" ); //列出 unix 机上当前目录下所有的文件和目录int status = system(command);该函数执行的步骤是:(1)在当前进程fork一个子进程;(2)调用/bin/sh拉起shell脚本,在子进程中运行shell原创 2021-03-19 17:12:11 · 544 阅读 · 0 评论 -
动态内存(1)
智能指针设计智能指针的原因:由于动态内存的使用很容易出问题,一旦忘记释放内存,就会产生内存泄漏;又或是在尚有指针引用内存的情况下释放了内存,这就会产生引用非法内存的指针;还有可能对同一块内存释放两次,导致自由空间被破坏。这三种情况都可能产生很严重的后果且很难进行trouble shooting。因此,设计出智能指针类对普通指针(内置指针类型)进行一定的包装,从而实现自动释放所指对象,并且,智能指针类以模板的方式呈现,这就使得该类具有很好的泛化能力。智能指针分类c++11提供了两种智能指针shared_原创 2021-03-13 21:58:56 · 94 阅读 · 0 评论