你所不知道的C++
文章平均质量分 52
漂流的代码
这个作者很懒,什么都没留下…
展开
-
你所不知到的C++ 之 多重继承
1. C++中class与struct。在C++里面,class与struct没有本质的区别,只是class的默认权限是private,而struct则是public。这个概念也揭示了一点:class和struct在内部存储结构上是一致的。所以我们可以利用这一点来探讨class的实现原理。我们可以将class转换成对应的struct对象,通过struct的简单性来展示class的内存存储结构。原创 2015-03-25 13:52:14 · 1161 阅读 · 0 评论 -
你所不知道的C++ 之 令人疑惑的默认构造
最近写代码的时候发现一个奇怪的现象:当我声明一个无参构造函数时,如果后面加上括号,声明出的对象就不能显示。比如下面的代码:#include class Test {public: Test() { printf("Test constructed\n"); }};int main(){ printf("==== t1:\n");原创 2015-03-10 15:36:42 · 1285 阅读 · 0 评论 -
你所不知道的C++ 之 C++模板的部分实例化
在很多模板库中,都用到了C++的部分实例化。所谓部分实例化,是这样的template class A { // 主模板 int x;};template class A { // 半实例化模板 long x;};template class V> class C { V y; V z;};C c;C::V 使用的是主模板,原创 2013-06-14 16:07:21 · 2701 阅读 · 0 评论 -
你所不知道的C++ 之 使用typename
当使用模板类型中定义的类型时,该怎么办呢?可以使用关键字typename。例如class AType {public: typedef int value_type;};templateclass TSample { typedef typename T::value_type value_type;}当使用TSample的时候,TSample的value原创 2015-03-10 15:47:36 · 1173 阅读 · 0 评论 -
你所不知到的C++ 之 宏的用法
前言严格的说,宏并不是C++语言的组成部分。宏是一种文本替换语言,用在C/C++的预编译系统中。宏能在一定程度上简化代码。宏主要有#include, #define, #if/#else#elseif#endif和#line等一些语法组成。宏在C/C++中是不可或缺的。比如#include指令。在增强可移植性上也起到了非常重要的作用。当然,当你使用#define的时候,如果使用原创 2015-03-10 16:32:43 · 1204 阅读 · 0 评论 -
你所不知道的C++ 之 C++虚类模型
我们知道,一个C++类如果带有virtual关键字的函数,那么,它就是一个虚类。虚类都有虚函数表。这个虚函数表真的存在吗?能摸得着、看得见吗?的确是可以的。下面我们就展示一下如何看到C++类的虚函数表。原创 2015-03-11 10:09:09 · 2175 阅读 · 0 评论 -
ART深入浅出2 -- 认识和了解Runtime Options
本文基于Android 7.1,不过因为从BSP拿到的版本略有区别,所以本文提到的源码未必与读者找到的源码完全一致。本文在提供源码片断时,将按照 android工程的路径>: 的方式,如果行号对不上,请参考类名和函数名来找到对应的源码。原创 2017-07-14 20:51:56 · 2304 阅读 · 1 评论