![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
idouba
这个作者很懒,什么都没留下…
展开
-
static_cast、dynamic_cast、reinterpret_cast、和const_cast
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。 static_cast 用法:static_cast ( expression ) 该运算符把expression转载 2010-12-25 23:46:00 · 251 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程 式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支 持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件转载 2010-12-25 12:46:00 · 271 阅读 · 0 评论 -
volatile关键字
volatile总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以死代码消除。 但有时这些优化不是程序所需要的,这时可以用volatile关键字禁止做这些优化,volatile的字面含义是易变的,它有下面的作用:1 不会在两个操作之间把volatile变量缓存在寄存器中。在多任务、中断、甚至setjmp环境下,变量可能被其他的程序改变,编译器自己无法知道,volatile就是告诉编译器这种情况。2 不做常转载 2010-12-25 13:06:00 · 309 阅读 · 0 评论 -
Type Casting
Converting an expression of a given type into another type is known as type-casting . We have already seen some ways to type cast:http://www.cplusplus.com/doc/tutorial/typecasting/Implicit conversion Implicit conversions do not require any operator. They转载 2010-12-25 13:31:00 · 540 阅读 · 0 评论 -
面向对象中的几个概念
<br /> 面向对象的几个概念,学习并且实践了不知多少次了。但发现对 聚合(Aggregation)和合成(composition)还不是那么清楚。<br /><br /><br /> 通常扩展一个类的功能主要有两种方式,一种是大家很熟悉的继承(inheritance),另一种就是合成(composition),很多初学OO(面向对象)并有一些经验都很容易搞混这个的区别,其实很简单,继承是解决Is-a的问题,而合成是解决Has-a的问题。比如说小原创 2011-04-10 11:59:00 · 463 阅读 · 0 评论 -
跟我一起写Makefile
概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile转载 2011-07-02 17:15:31 · 344 阅读 · 0 评论 -
使用LD_LIBRARY_PATH
记录GMS工作中遇到的问题,和解决办法。原创 2011-07-03 12:03:22 · 502 阅读 · 0 评论