C++
雨时滴答猿先晓
沉浸在代码世界的小小程序猿
展开
-
C++关于空类型大小以及存在虚函数大小
废话少说,直接上代码 #include<iostream> using namespace std; class A{ }; class B{ B(){} ~B(){} }; class C{ C(){} virtual ~C(){} }; int main(){ cout<<"A的...原创 2020-01-16 16:46:55 · 355 阅读 · 0 评论 -
IR中间码学习(基于llvm3.3)
相关指令: clang++ -emit-llvm -c -o fise*.bc file*.cpp 将c++代码编译成bc格式的二进制码 llc -march=cpp -o file*_llvm.cpp file*.bc 将bc二进制码反编译成IR中间码 g++ -O2 test_llvm.cpp -D __STDC_LIMIT_MACROS -D __STDC...原创 2019-11-11 18:16:03 · 938 阅读 · 0 评论 -
关于函数重载精确匹配的理解
匹配过程 为便于说明,将函数匹配分为三个阶段,确定候选函数,确定可行函数,确定最佳匹配函数。 1.确定候选函数 候选函数也就是和被调用的函数同名,并且其声明在调用点可见。举个简单的例子。 假设有两个文件,1.cpp和2.cpp,内容分别如下: 1.cpp: //函数1 voidf(inta,shortb) { cout<<"func0"<<e...原创 2019-11-11 17:46:00 · 173 阅读 · 0 评论 -
C++中实际项目开发中的内联函数
引入内联函数的目的是为了解决程序中函数调用的效率问题,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。其实就是用空间的代价去节省时间。 优点:当函数体比较小的时候,内联该函数可以令目标代码更加高效。 对于存取函数以及其它函数体比较短,,性能关键的函数鼓励使用内联。 缺点:滥用内联将导...原创 2019-07-09 11:59:15 · 166 阅读 · 0 评论 -
浅谈C++中的单例模式
单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 这个类称为单例类。 单例模式有三大特点: 1)构造函数定义为私有----不能在别的类中来获取该类的对象,只能在类自身中得到自己的对象2)成员变量为static的----static保证在自身类中获取自身对象3)只能调用getInstance方法来得到对象,而getInstance保证了每次调用都返回相同的对象。 ...原创 2019-07-23 21:07:57 · 229 阅读 · 0 评论 -
C++的四种强转的具体使用
static_cast, dynamic_cast,const_cast,reinterpret_cast有什么区别? 一、static_cast:静态转换,基本类型转换,不相关类型不可以转换; 例如: 二、reinterpret_cast:强制转换,两个没有任何关系的指针或者引用之间转换; 例如: 三、dynamic_cast:动态转换,多态的类型(指针或者引用)转换; ...原创 2019-09-17 16:27:02 · 543 阅读 · 0 评论