摘要:
本系列深入分析编译器对于C++虚函数的底层实现,最后分析C++在多态的情况下的性能是否有受影响,多态究竟有多大的性能损失。 阅读全文
摘要:
本系列深入分析编译器对于C++虚函数的底层实现,最后分析C++在多态的情况下的性能是否有受影响,多态究竟有多大的性能损失。 阅读全文
摘要:
本系列深入分析编译器对于C++虚函数的底层实现,最后分析C++在多态的情况下的性能是否有受影响,多态究竟有多大的性能损失。 阅读全文
摘要:
C++对象在经过类的封装后,存取对象中的数据成员的效率是否相比C语言的结构体访问效率要低下?本篇将从C++类的不同定义形式来一一分析C++对象的数据成员的访问在编译器中是如何实现的,以及它们的存取效率如何? 阅读全文
摘要:
C++对象在经过类的封装后,存取对象中的数据成员的效率是否相比C语言的结构体访问效率要低下?本篇将从C++类的不同定义形式来一一分析C++对象的数据成员的访问在编译器中是如何实现的,以及它们的存取效率如何? 阅读全文
摘要:
C++对象在经过类的封装后,存取对象中的数据成员的效率是否相比C语言的结构体访问效率要低下?本篇将从C++类的不同定义形式来一一分析C++对象的数据成员的访问在编译器中是如何实现的,以及它们的存取效率如何? 阅读全文
摘要:
返回值优化是什么意思?编译器在什么情况下会启用返回值优化,返回值优化能获得多少性能的提升?它有什么优缺点?本篇将从背后的机制来深入分析。 阅读全文
摘要:
C++11新标准中最重要的特性之一就是引入了支持对象移动的能力,移动语义的加持使得移动一个如容器之类的大对象的成本可以像复制一个指针一样低廉了,于是出现了各种各样的传言:如编译器会使用移动操作来替代拷贝操作以获得效率上的提升,甚至说将符合C++98标准的以前的老代码用符合C++11新标准的编译器重新编译一次,一行代码未改即可获得运行速度上质的提升。对于种种传闻,事实上是否如此? 阅读全文
摘要:
C++的拷贝构造函数什么时候会被生成出来?它完成了哪些功能?本篇将从编译器的角度出发,结合编译器生成的汇编代码,深入分析什么情况下编译器会生成一个拷贝构造函数,以及拷贝构造函数里面做了什么事情。 阅读全文
摘要:
C++的默认构造函数的作用是什么?什么时候会需要一个默认构造函数,以及默认构造函数从哪里来?这篇文章将从编译器的角度来分析这个问题。 阅读全文