- 浏览: 74528 次
- 来自: 厦门
最新评论
文章列表
延迟销毁资源,不具备写时复制功能,贴出代码
class DataSource
{
private:
volatile unsigned int *m_pICount;
double *m_pData;
public:
DataSource(double *pData);
~DataSource();
DataSource(const DataSource &ds);
DataSource& operator =(const DataSource &ds);
bool operator ==(const DataSourc ...
帕金森定律(Parkinson’s Law)–“工作总是用完所有可利用的时间(Work expands to fill the time available)”,这意味着容易达到的目标将使员工工作上变得松懈–如果你给自己安排了充裕的时间从事一项工作,你会放慢你的节奏以便用掉所有分配的时间。
反思:–1如何规避帕金森定律?–2如果整个项目有20%的缓冲时间,你会如何分配这20%的缓冲?
定律解析
这个道理很类似大学时代,总是拖到最后几天去学习,然后匆忙应试的道理——这个道理害苦了很多大学生,让他们有一种错觉,养成凡事随意放弃的坏习惯。
临考试前的突 ...
QT-Linguist国际化的简单实现
QT-Linguist工具主要用在项目的多语言翻译处理过程中,所有先简单介绍一下整个多语言处理过程,最后介绍Linguist的用法。
QT项目实现多语言,必须做两件事:
1)确保每一个用户可见的字符串都使用了tr()函数
2)在应用程序启动的时候,使用QTranslator载入一个翻译文件(.qm)
(一)编写源码
类SpeedLinguist:
#ifndef SPEEDLINGUIST_H_
#define SPEEDLINGUIST_H_
#include <QtCore/QObject>
#in ...
(一)C++实现方式:
class OnlyOne
{
int data;
public:
static OnlyOne& Instance()
{
static OnlyOne uniqueInstance;
return uniqueInstance;
}
public:
int GetData(){return data;}
protected:
OnlyOne():data(100){} //构造函数为protected,也可以是private,但子类不能调用该构造函数
OnlyOne(OnlyOne&){}
...
使用FileInputStream+BufferedInputStream与FileOutputStream+BufferedOutputStream实现文件复制,是很多人普遍想到的一种方法。在这里,我将给出另外一种方法,使用FileChannel通道。其实,还有一些其他方法,想了解更多,清参见我转载的文章:JAVA NIO 简介。
不多说,直接贴出源码:
srcFile和destFile:均为文件而非目录;
overlay:指示是否覆盖已存在目标文件。
package com.pluto.file;
import java.io.BufferedInputStream;
...
1. 基本 概念
IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。
所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )
2.
(一)公有虚函数
子类通过覆盖公有虚函数的方式实现多态是最常见的情况。指向子类对象的基类指针调用被子类覆盖的函数,实际上,调用的是子类的函数。以下代码:
class Base
{
public:
virtual void foo()
{
c ...
1. Android模拟器的默认IP地址是127.0.0.1,而给主机分配了IP 10.0.2.2。
2. 在文件AndroidManifest.xml中设置权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
7-bit编码:发送普通ASCII字符;
8-bit编码:通常用于发送数据消息;
UCS2编码:用于发送Unicode字符。
而一般的PDU编码由A B C D E F G H I J K L M十三项组成,其中这十三项的释义分别为:
A:短信息中心地址长度,2位十六 ...
位字段
定义
位字段是C语言中一种存储结构,不同于一般结构体的是它在定义成员的时候需要指定成员所占的位数。
所有基础的数据类型, 最大的也不过 10 个字节;
我们可以自定义的数据类型 -- struct, 通过把若干类型组合在一起, 让一种类型可以大很多.
我们知道, 一个字节有八个 Bit 组成; struct中的 "位字段" 是以 Bit 为单位的, 这已经是计算机的最小单位, 大小是 char 类型的 1/8.
用途
它主要用于一些使用空间很宝贵的程序设计中,如嵌入式程序设计。
要点
1.C语言允许unsigned in ...
Objective-C的Initialize初始化方法研究
这篇文章介绍了Objective-C比较底层的内容,主要讲解initialize和init方法的区别。从这篇文章中我们不光可以了解Objective-C在初始化时所做的事情,更可以学习到一些如何研究Objective-C语言内部到底做了什么的方法,这样你也可以自己对更深层次的内容进行探寻。
Objective-C很有趣的一个地方是,它非常非常像C。实际上,它就是C语言加上一些其他扩展和一个运行时间(runtime)。
有了这个在每个Objective-C程序中都会起作用的附加运行时间,给了它一些动态的特性。C和C++没 ...
不定参数函数
stdarg.h是C语言中C标准函数库的头文件,stdarg是由stdandard(标准) arguments(参数)简化而来,主要目的为让函数能够接收不定量参数。 C++的cstdarg头文件中也提供这样的机能;虽然与C的头文件是兼容的,但是也有冲突存 ...
1. 头文件依然是.h2. .cpp变成了.m3. #import代替了#include,#import保证只会引用一次,相当于.h里的#ifndef #define #endif模式4. 用@interface … @end来声明类,取代class ClassName{}5. 用@implementation … @end来实现类6. Data Members放在@interface ClassName : Parent{ … }中,默认权限为@protected,在ObjC里称为Instance Variables7. Member Functions放在@interface ClassNa ...
c++内存分配优先使用内存池,而不是new,delete
容健行@2008-2-1
转载请注明出处
trackback:http://www.devdiv.net/home/space.php?uid=125&do=blog&id=364
认识一下new和delete的开销:
new和delete首先会转调用到malloc和free,这个大家应该很熟识了。很多人认为malloc是一个很简单的操作,其实巨复杂,它会执行一个系统调用(当然不是每一次,windows上是按页算),该系统调用会锁住内存硬件,然后通过链表的方式查找空闲内存,如果找到大小合适的,就把用户的 ...
RAII惯用法:C++资源管理的利器
RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。
我记得第一次学到RAII惯用法是在Bjarne Stroustrup的《