
C++
jiaoyun007
这个作者很懒,什么都没留下…
展开
-
c++八大金刚
c++八大金刚:1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书代表,圣经。3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书代表。4、Inside th转载 2013-07-10 22:00:38 · 527 阅读 · 0 评论 -
C++文件读写详解(ofstream,ifstream,fstream)
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plaincopyprint?#include ofstream //文件写操作 内存写入存储设备 i转载 2013-10-24 17:03:37 · 483 阅读 · 0 评论 -
C++ 关键字 (try-finally)
原来...C++ 关键字 (try-finally)try-finally语句是Microsoft对C和C++语言的扩展,它能使32位的目标程序在异常出现时,有效保证一些资源能够被及时清除,这些资源的清除任务可以包括例如内存的释放,文件的关闭,文件句柄的释放等等。try-finally语句特别适合这样的情况下使用,例如一个例程(函数)中,有几个地方需要检测一个错转载 2013-10-21 13:38:35 · 1131 阅读 · 0 评论 -
类模板与模板类的概念
1.类模板与模板类的概念⑴ 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默写成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。 如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。转载 2013-10-21 15:46:53 · 795 阅读 · 0 评论 -
RAII惯用法:C++资源管理的利器
RAII惯用法:C++资源管理的利器RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯用法是在转载 2013-11-01 15:39:30 · 467 阅读 · 0 评论 -
浅谈C++中的资源管理
C++的复杂是一个基本事实,这也成了很多人对C++横加指责的原因。事实上,正如陈皓在“C++的数组不支持多态”?这篇文章中提到的,很多人在并不真正了解C++的情况下,就喜欢得出这样的结论。更有甚者,把C语言本身的“坑”也归结为C++的问题。这样的人着实不少,C++11作为最具争议的语言之一,每一次讨论到涉及语言选择的时候,都会引起一场“血战”,但结果往往不了了之,喜欢C++的继续坚守C++阵营,讨转载 2013-11-01 17:03:47 · 457 阅读 · 0 评论 -
C++11(及现代C++风格)和快速迭代式开发 -- 刘未鹏
过去的一年我在微软亚洲研究院做输入法,我们的产品叫“英库拼音输入法” (下载Beta版),如果你用过“英库词典”(现已更名为必应词典),应该知道“英库”这个名字(实际上我们的核心开发团队也有很大一部分来源于英库团队的老成员)。整个项目是微软亚洲研究院的自然语言处理组、互联网搜索与挖掘组和我们创新工程中心,以及微软中国Office商务软件部(MODC)多组合作的结果。至于我们的输入法有哪些创新的fe转载 2013-11-04 09:07:54 · 968 阅读 · 0 评论 -
局部变量,局部静态变量,全局变量和全局静态变量的区别
2012-01-30 14:13:02 我来说两句 收藏 我要投稿c++内存到底分几个区?一: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回转载 2014-11-01 12:38:30 · 526 阅读 · 0 评论 -
C++ 异常处理 入门
C++ 异常处理 入门异常:程序执行期间,可检测到的不正常情况。例如:0作除数;数组下标越界;打开不存在的文件;远程机器连接超时;malloc失败等等。程序的两种状态:正常状态和异常状态,发生不正常情况后,进入异常状态,从当前函数开始,按调用链的相反次序,查找处理该异常的程序片断。1.throw 表达式语义:用表达式的值生成一个对象(异常对象),程序进入异常状态。T转载 2013-10-14 12:57:20 · 435 阅读 · 0 评论 -
面向过程、基于对象、面向对象,到底有什么区别?
我们可理解“纯粹”的面向对象程序设计方法是什么样的: (1) 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。 (2) 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”转载 2013-09-23 22:40:40 · 690 阅读 · 0 评论 -
派生类是否是抽象类
如果派生类没有重新定义纯虚函数,而派生类只是继承基类的纯虚函数,则这个派生类仍然还是一个抽象类。如果派生类中给出了基类纯虚函数的实现,则该派生类就不再是抽象类了,它是一个可以建立对象的具体类了。抽象类不能实例化 ( new的时候实例化)转载 2013-09-21 16:35:36 · 3119 阅读 · 0 评论 -
boost::shared_ptr 分析与实现
boost::shared_ptr 分析与实现(转载)原文地址:http://blogold.chinaunix.net/u/14337/showart_299314.htmlboost::shared_ptr 分析与实现/************************************************************* file转载 2013-07-13 17:46:52 · 616 阅读 · 0 评论 -
C++ placement new 的使用方法
C++ placement new 的使用方法转自:http://www.programfan.com/club/showtxt.asp?id=320940placement new的含义placement new 是重载operator new 的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operator new 和 operator delete能够被转载 2013-07-01 20:25:15 · 377 阅读 · 0 评论 -
sscanf
sscanf2010-08-27 14:31 1956人阅读 评论(0)收藏 举报正则表达式cstringnewlinestreambuffer 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mix转载 2013-07-18 22:29:08 · 548 阅读 · 0 评论 -
C++ vtable的生成以及vptr的赋值跟踪实验
在看《Inside The C++ Object Model》时想到一个问题, vtable是在什么时候生成的?运行时对象的vptr又是什么时候赋值的?如何得知相应的函数的地址的? 为此写程序实验了一下,得出结论如下: 1. 编译的时候,编译器自动为每个有虚函数的类生成vtable,此vtable类似于静态常量数据,并编译到最终的可执行文件中。 2. 具体实例的v转载 2013-07-04 23:09:04 · 574 阅读 · 0 评论 -
多态性----vptr----vtable
多态性 (polymorphism) 是面向对象编程的基本特征之一。而在 C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码: #include using namespace std; class Base { int a; public: virtual void fun1() {cout<<"Base::fun1()"<<end转载 2013-07-04 23:12:41 · 423 阅读 · 0 评论 -
构造函数为什么不能是虚函数
构造函数为什么不能是虚函数1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。2. 从使用角度,虚函数主要用于在信息不全的情况下,能使转载 2013-07-04 22:15:47 · 529 阅读 · 0 评论 -
关于pragma pack的用法(一)
一个很重要的参数#pragma pack(n)数据边界对齐方式:以如下结构为例: struct { char a; WORD b; DWORD c; char d; }在W转载 2013-08-13 23:11:48 · 402 阅读 · 0 评论 -
纯虚函数的默认实现
在帮新同事进行代码审查的时候,常常会发现这样的问题:代码中原有基类B和派生类D1,现在新加一个派生类D2,它有一个函数f2()。由于经验不足,新同事并没有注意到D1也有类似的函数f1()。于是造成了类似的代码出现在了两个地方,代码冗余造成将来的维护工作异常困难。注意到f()实际上是一个通用的行为,我们可以把它抽出来放到基类中,如下所示。[cpp] view plainc转载 2013-09-19 22:31:46 · 869 阅读 · 0 评论 -
shared_ptr解析
shared_ptr解析《超越C++标准库-Boost库导论》头文件: "boost/shared_ptr.hpp"几乎所有稍微复杂点的程序都需要某种形式的引用计数智能指针。这些智能指针让我们不再需要为了管理被两个或多个对象共享的对象的生存期而编写复杂的逻辑。当引用计数降为零,没有对象再需要这个共享的对象时,这个对象就自动被销毁了。引用计数智能指针可以分为侵入式(intru转载 2014-12-04 17:25:06 · 464 阅读 · 0 评论