C++ primer
文章平均质量分 76
Hashmat
这个作者很懒,什么都没留下…
展开
-
New和Delete
人们有时似乎喜欢故意使C++语言的术语难以理解。比如说new操作符(new operator)和operator new的区别。 当你写这样的代码: string *ps = new string("Memory Management"); 你使用的new是new操作符。这个操作符就象sizeof一样是语言内置的,你不能改变它的含义,它的功能总是一样的。它要完成的功能分成两部分。第一部分是分配足够的内存以便容纳所需类型的对象。第二部分是它调用构造函数初始化内存中的对象。n原创 2010-11-28 11:18:00 · 878 阅读 · 0 评论 -
C++中new和delete
这次因为项目被划分成多个dll模块,而且在某个dll模块中new出来的内存块可能会穿越其他的dll,最后可能不是在它出生的那个dll中被销毁,这会导致内存分配回收出现问题。 考虑了一下,决定由一个dll模块单独的维护内存申请和释放,其他任何需要动态申请内存的模块都调用该dll中的接口即可。不过在实际操作中,有一点点问题: 我本来是希望在dll中重载好new和delete,这样其他模块只要和dll链接就可以,最大限度复用代码。 但是实际上实验下来是不行的。new重载后公开为导出函数倒是没问题,但是de原创 2010-11-25 11:15:00 · 948 阅读 · 0 评论 -
C中的malloc和free(转)
在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以 写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助! 如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知识等),我感觉这篇文章应该是比较全面地谈原创 2010-11-24 23:03:00 · 620 阅读 · 0 评论 -
Assert浅谈
目录[隐藏] 概述 常见的断言特性 断言使用方式 启用断言 何时需要使用断言 什么地方不要使用断言 C里面的函数 [编辑本段] 概述 Assert - 断言 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。 使用断原创 2010-11-26 21:26:00 · 737 阅读 · 0 评论 -
预编译头文件
一个编译系统的好坏,其中一个重要的指标是编译的速度! stdafx.h 中包含以下一些语句,其主要目的是提高编译的速度,节省编译时间. 比如下面三句语句的意思是: #if !defined // 如果没有定义下面这一句 (AFX_TEXTPROGRESSCTRL_H__4C78DBBE_EFB6_11D1_AB14_203E25000000__INCLUDED_) #define //就定义这一句 AFX_TEXTPROGRESSCTRL_H__4C78DBBE_EFB6原创 2010-11-21 21:23:00 · 985 阅读 · 0 评论 -
FILE__,__LINE__,FUNCTION__实现代码跟踪(转载)
root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件 #ifndef CLOBAL_H #define GLOBAL_H #include int funca(void); int funcb(void); #endif root@xuanfei-desktop:~/cpropram/2# cat funca.c //函数a #include原创 2010-11-21 21:05:00 · 2552 阅读 · 0 评论 -
变长参数表
<br /> #include <stdarg.h>/* minprintf: minimal printf with variable argument list */void minprintf(char *fmt, ...){va_list ap; /* points to each unnamed arg in turn */char *p, *sval;int ival;double dval;va_start(ap, fmt); /* make ap point原创 2010-11-21 17:19:00 · 794 阅读 · 0 评论 -
printf()字符
a 符号 作用 —————————————————————————— %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如原创 2010-11-21 21:46:00 · 8322 阅读 · 0 评论 -
类模板的友元函数(转载)
from: http://topic.csdn.net/u/20071106/17/c562631f-fd24-4836-9e13-43c53157bd8c.html 首先感谢大家的关注和回答.但是发现大家热心有余,认真不足-------因为没有一个人真的编译过我的问题代码.. 我在帖子中给的问题代码,因为去除了所有其他的不相关代码,所以是可以编译通过的.如下: /////////////// Matrix.h 文件内容 (部分代码)////////////////// #incl原创 2010-11-21 21:09:00 · 1010 阅读 · 0 评论 -
动态链接库
<br />Abstract: Includes a short explaination and simple example of using virtual base classes as interfaces across an exe and a run-time loaded dll. <br /> Using a class from a dll is easy when the dll is statically (or load-time) linked原创 2010-11-21 20:31:00 · 576 阅读 · 0 评论 -
abort、exit、atexit、strerror函数的使用方法
这些都属于流程控制过程,不是语言内建元素。 但abort是在SysUtils单元中定义的: 是通过抛出silent exception来退出整个程序。 Exit是System单元中定义的, 用来退出过程(例外情况,finally还是会被执行) In Delphi, the Exit procedure immediately passes control away from the current procedure. If the current procedure is the main pr原创 2010-12-08 23:02:00 · 1125 阅读 · 0 评论 -
static_cast,dynamic_cast,reinterpret_cast和c语言转换
大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写 C++(程序)时,有时候我们在使用static_cast和reinterpret_cast时可能会有点模糊。在本 文中,我将说明static_cast实际上做了什么,并且指出一些将会导致错误的情况。 泛型(Generic Types) float f = 12.3; float* pf = &f; // static cast // 成功编译, n = 12 int n原创 2010-12-04 16:25:00 · 1381 阅读 · 0 评论 -
strlen为何如此高效
直接操作C标准库提供的字符串操作函数是有一定风险的,稍有不慎就会导致内存问题。这周用业余时间写了一个小型的安全字符串操作库,但是测试之后才发现自己的实现有很大的性能缺陷。 在Solaris上初步做了一个简单的性能比对,以下是得到的性能数据(以strlen的数据为例): 当传入的字符串长度为10时,执行100w次: strlen 执行时间是:32762毫秒 my_strlen执行时间是:491836毫秒 当传入的字符串长度为20时,执行100w次: strlen 执行时间是原创 2010-12-03 23:20:00 · 4678 阅读 · 1 评论 -
C++书籍推荐
当读者有一定c/c++基础 推荐的阅读顺序: level 1 从>开始,短小精悍,可以对c++能进一步了解其特性 以>作字典和课外读物,因为太厚不可能一口气看完 level 2 然后从>开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻 接着是>,个人认为Herb Sutter主席大人的语言表达能力不及Scott Meyers总是在教育第一线的好 顺下来就是>和>,请熟读并牢记各条款 当你读到这里,应该会有一股升级的冲动了 level 3 >看过原创 2010-11-25 13:22:00 · 950 阅读 · 0 评论