C++语法
madbunny
这个作者很懒,什么都没留下…
展开
-
c语言函数声明中,static inline和extern inline的区别
c语言函数声明中,static inline和extern inline的区别“extern”关键字对于普通函数没有作用“extern”和“static”能影响编译器对内联函数的处理“extern”关键字对于普通函数没有作用extern在修饰变量和函数声明时的作用是表示:这个东西不在当前的编译单元中,只需要它的声明即可。链接时,链接器会去其它编译单元以及其它库中寻找它的定义。而函数默认就是extern的。所以当你看到像下面这样的代码时,很可能写代码的人不知道自己在干什么:// useless “ex原创 2021-08-11 12:14:52 · 3561 阅读 · 2 评论 -
std::stoi系列函数自动识别8进制、16进制数的方法
像这样写只能转为0string str = "0x12";int i = stoi(str);正确的写法应该是这样:string str = "0x12";int i = stoi(str,0,0);指定base是0,函数则自动判断。不写的话,默认值是10,当然不给力。原创 2016-08-22 21:00:24 · 4363 阅读 · 0 评论 -
为什么Java不支持多继承,却搞了个Interface出来?
多继承的问题在于无法找到一个合理的规则去初始化基类的数据。 菱形继承中,两个子类分别调用父类构造函数进行初始化时,到底该调用谁?都调用的话,谁先谁后?原创 2016-10-18 09:30:36 · 1251 阅读 · 0 评论 -
C++打印类名+函数名的方法
C++打印类名+函数名的方法打log的时候经常需要将输出log时所在的类名,函数名写清楚。 但是自己敲函数名和类名比较麻烦,复制粘贴的时候也会忘记修改而出错。 下面介绍下如何在G++/GCC编译器下获得函数名和类名:如果只想获得函数名可以用C99的特性:__func__但是在成员函数中,想打出 类名::函数名 这样的log,用上面这个宏就做不到了。 在GCC下可以利用GC...原创 2018-04-03 13:20:58 · 23019 阅读 · 4 评论