电影旅行敲代码

C++ 编译 操作系统

人类的行为与程序计算

引子人类从出生伊始都在面临着生活中的种种问题,人类无时无刻不在进行着问题的解决过程。程序从设计之初也是用来解决生活中特定问题的。那么人类行为与程序计算理论之间又有什么相似性呢? 人类 人类所面临的问题 人类解决问题的过程 人类解决问题的过程与程序执行 代码生成器 人类人类是当今地球上最智慧的生物,...

2015-11-30 20:47:39

阅读数 858

评论数 0

C++中的Observer模式

引子什么时候Observer模式呢? 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象细节 许多时候,我们都需要当我们应用的一部分状态更新时,其他部分的状态能够相应的更新。有一种方式就是让接收者不断地去检查发送者的状态...

2015-11-26 22:01:59

阅读数 781

评论数 0

C++11中的POD和Trivial

引子在介绍C++11的文章或者博客中,经常会出现POD类型和Trivial类型的影子。但是POD类型和Trivial类型到底是什么意思呢? POD类型 POD类型的好处 POD类型粗略上来讲,POD是C++为兼容C的内存布局而设计的,主要用于修饰用户自定义类型。但POD却远比这个要复杂。POD(P...

2015-11-25 20:50:09

阅读数 2434

评论数 0

由C++构造函数初始值列表想到的

引子 大家在编写C++代码的时候,总是会遇到下面这个问题,什么时候为构造函数提供初始值列表(当然,推荐做法都是以初始值列表代替构造函数体内赋值)。数据成员初始化动作是在构造函数体之前的,相对应的,析构函数的数据成员销毁动作是在析构函数体之后的。所常见的必须提供初始值列表的情况有, 数据成员含...

2015-11-10 20:30:21

阅读数 487

评论数 0

由计算机状态机到字符串相似

引子 计算机解决问题时,就是状态机从一个状态集合跳转到另一个状态集合的过程。状态迁移的过程是由计算机程序(亦即计算机汇编指令)来控制的,不同的指令序列会导致截然不同的计算结果,前面已经提到过指令序列的相似程度和字符串的相似程度是不同的。那么从计算机执行指令序列,能够得到计算字符串相似问题什么启发...

2015-11-10 11:07:27

阅读数 470

评论数 0

C++中的volatile

引子在阅读代码的过程中,相信大家都遇到过”volatile”这个关键字,有的人知道和编译器优化相关,甚至有的人根本不知道该关键字的功用volatile A type qualitier that you can use to declare that an object can be modi...

2015-11-09 11:30:55

阅读数 473

评论数 0

C++中的new/delete和new[]/delete[]

引子 C++的new/delete C++的new[]/delete[] C++的new/delete当我们使用一条new表达式时:// new表达式 string *sp = new string("a value"); string *arr = new string[10...

2015-11-07 17:27:20

阅读数 502

评论数 0

C++中的"delete this"

引子 C++中delete能否用于栈对象 C++中”delete this”会出现什么问题 C++中”delete this”有什么规避方法 C++中delete能否用于栈对象在大家的印象中delete只能用于new出动态内存对象,我们使用了g++/Clang++/MSVC来测试delete栈对象...

2015-11-06 19:36:00

阅读数 1425

评论数 0

C++一种智能指针的实现

引子 C++智能指针shared_ptr<> 以对象管理资源 一种智能指针的实现 C++智能指针shared_ptr<>为了兼容C语言,并且由于垃圾回收的性能原因,C++没有引入垃圾回收。但是动态内存分配又是现实编码中不可或缺的一部分,由程序员自己控制分配和回收。C++11...

2015-11-04 11:29:19

阅读数 566

评论数 0

static_cast<>在CRTP中的应用

CRTP是C++中实现静态多态(static polymorphism)的方式,这种实现方式能够提高运行时效率及减少内存消耗,在嵌入式领域相当有优势。这里估计会有人反驳,难道针对每个派生类实例化独有的基类难道不占有内存吗?编译时,实例化的独有基类确实会增加很多类型信息,但是这仅仅是类型信息,只存在...

2015-11-03 21:28:03

阅读数 558

评论数 0

static_cast<>能够适用所有转型吗,有什么条件

CheckStaticCast - Check that a static_cast(SrcExpr) is valid.Refer to C++ 5.2.9 for details. Static casts are mostly used for making implicit convers...

2015-11-03 21:20:47

阅读数 2156

评论数 0

dynamic_cast<>操作数必须是多态类型吗

dynamic_cast<>是C++运行时的一个类型转换运算符,通常用于自定义类型层次中的向下转型(downcasts),使用形式如下所示: dynamic_cast<type*>(e) dynamic_cast<type&>(e) dynamic_ca...

2015-11-03 21:13:25

阅读数 2186

评论数 0

C++实现机制RTTI

运行时类型识别(run-time type identification, RTTI)的功能由两个运算符实现: typeid运算符,用于返回表达式的类型。 dynamic_cast<>运算符,用于将基类的指针或引用安全的转换成派生类的指针或引用。 C++中没有JAVA中的反射机制,在运...

2015-11-03 21:05:56

阅读数 663

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭