Chinaunix首页 | 论坛 | 博客
  • 博客访问: 365474
  • 博文数量: 38
  • 博客积分: 256
  • 博客等级: 入伍新兵
  • 技术积分: 846
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-14 23:21
文章分类

全部博文(38)

文章存档

2015年(1)

2014年(1)

2013年(28)

2012年(8)

我的朋友

发布时间:2013-02-03 22:48:59

static关键字在C/C++中应用广泛,而且有不同的语义。这篇文章,我主要想探讨一下用static修饰变量的时候,它都有些什么语义,这些变量都有哪些特性。1.源文件中用static定义全局变量这个变量只能在这个文件中可见,其它任何文件中对这个变量都是不可见的。而且你不可以用extern把这个变量导出去。 2.........【阅读全文】

阅读(7328) | 评论(0) | 转发(1)

发布时间:2013-02-03 22:02:35

在上一篇文章中,我给出了一个重载New/Delete的通用设计方法。但是当我们使用它时,会发现,它还是挺麻烦的,要修改三个地方:a. 在.cxx文件中定义一个extern字符串;b. 在.hxx文件中声明这个字符串;c. 使目标类继承于模板类。 当我们设计一个lib的导出接口时,一个很重要的目标就是简化某个功.........【阅读全文】

阅读(1616) | 评论(0) | 转发(0)

发布时间:2013-01-21 23:43:32

原标题:Construction of function static variables in C++ is not thread safeHere’s a short quiz. What will the following code print:#include <iostream>using namespace std;class Foo {public: Foo(const char* s = "") { cerr << "Constructing Foo with " << s << endl; }};void .........【阅读全文】

阅读(1733) | 评论(0) | 转发(0)

发布时间:2013-01-21 22:21:45

概述:一般来说,我们不会对全局的new/delete操作符进行重载,而是对某个特定的class。这样我们不会改变软件域中,开发人员和维护人员对new和delete的理解。在这篇文章中,我将会用演绎的方式来阐述一种设计模式,用于提供功能性的复用,我们叫它“功能模式”。基本的情境是这样的:在一个软件系统中,我们可.........【阅读全文】

阅读(1693) | 评论(0) | 转发(0)

发布时间:2013-01-07 00:23:09

关于我们为什么要重载new和delete,我想看过我前一基础篇的朋友,应该都知道了。最基本的原因就是我们想控制内存分配的过程。
如果你要问更详细的条条框框,来解释重载new/delete可以做什么的话,我推荐你去读读《Effective C++》条款50。
这里我不想描述这些书本上已经有的东西,而是想记录一些我实战中的经验。重载new和delete需要注意些什么 a. 我们知道,内存分配在C中是由两个函数实现的,而在C++中是由两个操作符实现的。所以在我们重载new和delete的时候就应该遵守一定的编程规则:

不要分配一个size为0的内存,因为C++要在你分配的这块内存上执行c......【阅读全文】

阅读(1536) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册