![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 63
编程
SLAM||DUNK
这个作者很懒,什么都没留下…
展开
-
C++对象的内存结构以及RTTI
类中一旦有虚函数,就会产生虚函数表,虚函数表的按照顺序保存了该类中所有虚函数指针,并且对象中会生成指向该虚函数表的虚函数指针,虚函数表通常被放置在程序可执行文件的只读数据段(例如 .rodata 或 .rdata)中。RTTI(Run-Time Type Information,运行时类型信息)是C++语言的一个特性,它提供了在运行时获取对象的类型信息的能力。如果类B继承自类A,那么B对象的内存放置顺序是先布置继承来的A相关成员数据,且和A对象的内存对齐情况一致。如下,4字节对齐时,内存占用是16。原创 2023-12-18 21:30:15 · 119 阅读 · 0 评论 -
和gpt聊一聊关于当使用std::shared_ptr作为函数参数时,值传递和引用传递的一些内部机制
原创 2023-07-20 05:58:46 · 110 阅读 · 0 评论 -
C++ Copy elision
C++ 编译器优化原创 2022-10-15 00:43:15 · 518 阅读 · 0 评论 -
noexcept移动构造函数对vector push_back的优化作用
noexcept移动构造函数对vector push_back的优化作用原创 2022-09-24 22:38:47 · 632 阅读 · 0 评论 -
vector的 push_back 和 emplace_back
push_back和emplace_back转载 2022-09-24 15:10:08 · 140 阅读 · 0 评论 -
右值引用和异常安全
移动构造和异常安全和noexcept原创 2022-09-24 00:15:44 · 416 阅读 · 0 评论 -
const 与 & 做为函数返回值
首先我们有下面两个函数, 一个返回引用一个返回值。int temp; // 全局变量 float fn1(float r){ temp = ... .... return temp;} float &fn2(float r){ //&说明返回的是temp的引用,换句话说就是返回temp本身 temp = ... ...... return temp;}有以下几种情况:float a=fn1(5.0);此时,fn1返回时原创 2020-07-24 12:34:27 · 1383 阅读 · 1 评论 -
C++新特性之型别推导
C++新特性之型别推导函数模板型别推导Auto型别推导type函数模板型别推导Auto型别推导type原创 2021-11-23 12:41:21 · 506 阅读 · 0 评论 -
C++ 头文件与前置声明的使用
总结于博客:c++的类的前置声明,类的互相包含对于复杂的类相互包含的情况:1、头文件尽量写在.cc中,.h中能用前置声明就用前置声明。2、头文件不能代替前置声明,如下图,对于类中有其他某个类的指针变量,包含头文件也没用,必须要有前置声明。前置声明也同样不能替代头文件。前置声明的作用是指示“这个变量是个什么类型”,而不会告知“这个变量的具体定义”,因此,前置声明只对指针或引用类型的变量有效...原创 2019-12-06 11:31:05 · 451 阅读 · 0 评论