随笔分类 - C++
C++一些知识点记录
摘要:快有几个月没更新了,记录一下最近解决问题用到的工具吧. 最近代码跑压力测试,总是发现内存在无规律的慢慢增加,因此在Android上用上了大名顶顶的valgrind,说实话,真是名不虚传, 真是建议以后所有c/c++ 项目,不管有没有现象级的问题,用这个跑一下检测下一些隐藏得比较深的问题; expor
阅读全文
摘要:概述OMX Codec是stagefrightplayer中负责解码的模块。由于遵循openmax接口规范,因此结构稍微有点负责,这里就依照awesomeplayer中的调用顺序来介绍。主要分如下几步:1 mClient->connect2 InitAudioDecoder & InitVideoD...
阅读全文
摘要:首先必须烂熟于心的几个概念(最权威的解释还是代码): start_time: <!--StartFragment--> The start time of the element is the * running time of the element when it last went to th
阅读全文
摘要:一般地当我们只想知道一个值是否存在时,set 最有用处;希望存储也可能修改一个相关的值时,map 最为有用. map提供一个键值对容器,在map(也叫关联数组)中我们提供一个键/值对,键用来索引,而值用作被存储和检索的数据. 在使用map和set时两个最主要的动作是向里面放入元素以及查询元素是否存在...
阅读全文
摘要:COM技术要求客户机和服务器高度的分离,这是通过接口实现的,但是问题出在:接口的方法中只提供了有限个参数数据类型,如果这个接口是基于 IDispatch的,参数类型的可选范围就更加受到限制了,由于这些局限性,C++对象只有在满足以下条件时才能够传递:客户机和服务器都是由VC++编写。它们必须共享对象...
阅读全文
摘要:STL的容器类是针对对象来进行存储管理的。虽然没有明确的限制不能在STL的容器类中包含指针,STL也不在乎您存放在容器中的对象还是指针。但仔细考虑STL的初衷,在容器类中使用指针是明显不合时宜的,而应该尽可能的直接将对象本身而不是将对象的指针放置在STL容器类中。直接在容器中存放指针一个最大的副作用...
阅读全文
摘要:dynamic_cast有什么用?实际上,dynamic_cast是ANSI C++中仅有的两个与RTTI (Run Time Type Identification)有关的用法之一。C++的类继承,使得有时很难弄清楚你正在使用的object属于哪个class,特别是当继承树比较深并且比较复杂的时候...
阅读全文
摘要:STL这个东西,真是既让人恨,又让人爱;恨得是他的语法太繁琐(基本上很多时候要用到的时候,都要翻阅资料,他的语法真是难记),爱的是他的功能确实很强大,然而,就我个人而言,任然是爱大与恨,呵呵...如果在程序中合理地结合了STL容器和算法,而不是从头到尾都自行编写和调试自己的版本,就能节省大量的时间和...
阅读全文
摘要:如果需要在运行时确定数组的维数,可以使用基于堆的数组。分配时,可以通过指针访问,不同于一维数组,二维数组中,需要利用指向指针的指针,而在多维数组中,则需要N层指针。但是,不能向下面那样: char ** board = new char[i][j];//Doesn't complie这段代码不能编译...
阅读全文
摘要:typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。本文下面将竭尽全力来揭示 typedef 强大功能以...
阅读全文
摘要:1,按照惯例,MFC库类名用大写“C”打头。2,类CMyApp的对象theApp就代表一个应用程序。当运行该应用程序的时候,WINDOWS自动调用程序框架内部的WinMain函数,WinMain函数会去查找该应用程序的全局构造对象(theApp),该对象是有CWinApp类派生类的对象。C++中,全...
阅读全文
摘要:讨论虚拟函数的技术内幕——后期联编(Late binding), 一,进入内存首先,一个含有虚拟函数的类在内存中的结构。假设一个这样的类:class CShape{ int b1;public: void MyTest() { cout //-----------------------------...
阅读全文