博客统计信息

用户名:wangyangtc
文章数:28
评论数:5
访问量:36457
无忧币:20
博客积分:553
博客等级:2
注册日期:2007-12-07

2008-07-13 10:53:43
C++内存管理
[导语]
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存泄漏、内存回收这三个方面来探讨C++内存管理问题。
1 内存管理
伟大的Bill ..
类别:C/C++|阅读(158)|回复(0)|(0)阅读全文>>
继木马编程DIY的上两篇,现在我们开始讨论断点续传与多线程文件传输的实现.其实这两项功能是下载软件所
必不可少的功能了,现在我们把它加到自己的木马中来感受感受.提到多线程下载,首先向网络蚂蚁的作者
洪以容前辈致敬,正是由于网络蚂蚁而使得多线程下载被关注并流行起来.在这本篇文章中我们将简单的实现
支持断点续传和多线程传输的程序.为了更清晰的说明问题,我们将断点续传与多线程传输分别用两个程序来实现

多线程传输实现
实现原理
将源文件按长度为分为N块文件,然后开辟N个线程,每个线程传输一块,最后合并所有线线程文件.比..
类别:C/C++|阅读(176)|回复(0)|(0)阅读全文>>
 




在上一篇中,我们以经介绍了程序的流程和框架,在本篇将详细讨论各个功能的实现主要包括


1.获取磁盘信息
2.获取目录信息
3.获取文件信息
4.运行指定文件
5.删除指定文件
6.删除指定目录
7.创建指定目录
8.上传下载文件
9.获取远程文件图标


获取磁盘信息

磁盘信息可以用API GetDriveType来实现,它以路径名作为参数(如C:\)返回磁盘类型,其实例代码如下

DWORD GetDriverProc(COMMAND command,SOCKET client)
{
for(char i='A';i<='Z';i++)
{
char x[20]={i,':'};
UINT Type=GetDriveType(x);
if(Type==DRIVE_FIXED..
类别:C/C++|阅读(300)|回复(0)|(0)阅读全文>>
1肥胖
  长期坐在电脑前的人,因缺乏锻炼,会出现重力性脂肪组织分布异常。脂肪堆积在下腹部和腰背部,易导致向心性肥胖。
2下肢静脉曲张
  因缺乏活动,依赖骨骼肌收缩回流的下肢静脉的压力将增高,长时间静脉管腔扩张会引起静脉瓣功能性关闭不全,最终发展成为器质性功能不全,导致下肢静脉曲张。
3颈椎病
  电脑操作使人的头部缺乏活动且久处于同一种姿势,时间过久则出现颈椎代偿性增生。颈椎增生可以压迫神经根,引起肩周炎、上肢活动受限,严重者生活不能自理。颈椎增生还可导致供应大脑枕部的椎动脉受压,引起大脑..
类别:未分类|阅读(81)|回复(0)|(0)阅读全文>>
2008-02-12 14:00:13
1.1 创建线程类
 
在Java中可以简单的从Thread类中继承创建自己的线程类:
 
public class MyFirstThread extends Thread {
 
    public void run() { . . .}
 
}
 
说明:
 
(1) Thread类位是java.lang包中,所以可以不用显示import;
 
(2) 从Thread类中继承下来的类最好重载run()方法,以运行需要的代码;
 
可以按以下方法实例化并运行线程:
 
MyFirstThread aMFT = new MyFirstThread();
 
aMFT.start();
 
说明:..
类别:Java|阅读(297)|回复(0)|(0)阅读全文>>
因为昨天看一则关于Synchronized(线程安全的帖子),只是觉得有些奇怪,其实当你明白一些基础后,你完全就可以自学Java了,但是OO的思想是要通过大量的实例以及实践形成的。(其实我的OO思想也不是很强烈,也正如neo_q牛人所说:"简单地说继承、封装、多态,在我们的程序中都应该是要能体现出来的")。
我在看线程的时候,并没觉得有多么困难,也可能是我学的根本就不深入。下面进入正题:
线程简介:
谈到线程,就必然要提到另一个概念,那就是进程。一般可以在同一时间内执行多个程序的操作系统都有进程的概念。一个进程就是一个..
类别:Java|阅读(796)|回复(0)|(0)阅读全文>>
摘要:本文首先分析对比了Java、C#的线程模型,然后在C++中实现了类似Java的轻量级线程模型 CJThread/IRunable,并在此基础上利用模板和operator->*实现类似C#的线程模型CCSharpThread。本文重点推荐CCSharpThread模型,它不仅是类型安全的,还能将任意一个原型为DWORD()的公有非静态类成员方法作为线程方法。
 
关键词:C++;模板;operator->*;线程;线程模型
 
       面向对象的线程模型使开发人员能以面向对象的方法来看待线程,并以面向对象的方法实现线程的应用逻辑;它包..
类别:Java|阅读(741)|回复(0)|(0)阅读全文>>
final定义的变量可以看做一个常量,不能被改变;
final定义的方法不能被覆盖;
final定义的类不能被继承。
final static 就是再加上static的特性就可以了

static 和final是没有直接关系的

static 是在内存中分配一块区域,供整个类通用,所有的类的对象都享有它的共同的值

static 和final的区别
一、static :
什么情况下我们要使用static呢?
1、只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创 建对象。
2、我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有..
类别:Java|阅读(3890)|回复(0)|(0)阅读全文>>
2007-12-27 10:12:58
覆盖 toString()





Object 类具有一个 toString() 方法,您创建的每个类都会继承该方法。它返回您的对象的一个 String 表示,并且对于调试非常有帮助。为了来看 toString() 的默认实现做些什么,请在 main() 中尝试这一体验:
public static void main(String[] args) {
         Adult myAdult = new Adult();
        
         myAdult.addMoney(1);
      &nbs..
类别:Java|阅读(821)|回复(0)|(0)阅读全文>>
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。
 
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
 
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返..
类别:Java|阅读(4519)|回复(0)|(0)阅读全文>>
 <<   1   2   3   >>   页数 ( 1/3 )