Welcome 微信登录

首页 / 软件开发 / C++

为C++标准库容器写自己的内存分配程序

为C++标准库容器写自己的内存分配程序

为C++标准库容器写自己的内存分配程序2007-10-08根据sgi 的STL源码的二级分配算法改写的内存池分配程序,只要稍微修改就可以实现共享内存方式管理,使用C++标准库容器中的map,set,multimap,multiset测试通过,vector测试通不过,原因是在内存回收的时候考虑的比较简单,vector每次分配内存个数不固定,回收也不固定,这样的话,程序还需要继续完善。内存池管理程序源码如下:#ifndef MY_ALLOCATOR_H_#de...
实例解析C++/CLI的输入与输出

实例解析C++/CLI的输入与输出

实例解析C++/CLI的输入与输出2007-10-08 天极 谢启东当使用标准C++时,我们已开始接触到两个主要的I/O"工具":标准C头文件cstdio和标准C++中与流相关的头文件iostream,如果加上Windows的话,那么还有Win32库和MFC库,另外,还有CLI/.NET。本文将要探讨的,就是C++/CLI中的输入与输出。简介日常,我们与文件或设备进行通讯的逻辑通道,称为流。数据可以8位字节或16位Unicode字符形式...
实例解析C++/CLI之代理与事件

实例解析C++/CLI之代理与事件

实例解析C++/CLI之代理与事件2007-10-09 天极 谢启东在CLI中,代理是对函数进行包装的对象;而事件是一种为客户程序提供通知的类机制。在前几篇文章中,已经多次演示了如果让一个句柄在不同的时间,被引用至不同的对象,从而以更抽象的方法来解决程序中的问题,但是,也能使用代理通过函数来达到同样的效果;代理是包装了函数的一个对象,且对实例函数而言,也能通过特定的实例,与这些函数发生联系。一旦一个代理包装了一个或多个函数,你就能通过代理来调用这些函数,而...
实例解析C++/CLI之开卷有益

实例解析C++/CLI之开卷有益

实例解析C++/CLI之开卷有益2007-10-08 天极 谢启东C++/CLI可以说是标准语言一种新的"方言",它是Microsoft为充分利用CLI(Common Language Infrastructure)平台而开发出来的。那么,它在语言方面有何新颖独到之处呢,下面,就让我们一起开始奇妙的C++/CLI语言之旅(文中所有示例代码,均以Visual Studio.NET 2005 Professional编译通过,所有的讲解内容...
实例解析C++/CLI之静态构造函数

实例解析C++/CLI之静态构造函数

实例解析C++/CLI之静态构造函数2007-10-09谢启东就某些类而言,当在程序中第一次使用时,最好能有一个初始化过程;当程序不再需要时,也最好能做一些收尾工作,这些都是非常好的类设计习惯。引出问题如果有这样一种情况,某种类型的每个实例都必须有其唯一的ID,比如说某种交易类型,这些ID可用于在处理过程中追踪每笔交易,或之后用于审计员查看数据文件;为讨论方便,此处的ID为从0起始的有符号整型数。如果把一个nextID值保存在内存中,并在每个新实例构造时,...
托管C++中利用path对象处理Temp文件

托管C++中利用path对象处理Temp文件

托管C++中利用path对象处理Temp文件2007-10-09 天极 谢启东程序中有时避免不了要使用临时文件,但在微软的.新平台中,许多编程者还未利用Path对象的便利条件来处理临时文件,仍然手工确定应用程序当前目录中的唯一文件名,并在程序用完之后删除。本文要演示的技巧,是通过使用Path类,以一两行的代码,就可完成下述任务:1、 定位"temp"目录。2、 创建唯一的、优化过的临时文件。3、 使用完后删除临时文件。定位"T...
实例解析C++/CLI中的继承与枚举

实例解析C++/CLI中的继承与枚举

实例解析C++/CLI中的继承与枚举2007-10-09 天极 谢启东本文中,将要介绍与继承相关的CLI主题,并以现实生活中银行交易的三种形式:存款、取款、转账,来说明类的继承体系,且以一种新的枚举形式来实现。枚举器请看例1中声明的类型,它存在于其自身的源文件中,并编译为一个只包含此类型的程序集:例1:public enum class TransactionType :unsigned char {Deposit, Withdrawal, Transfe...
实例解析C++/CLI中的接口与泛型

实例解析C++/CLI中的接口与泛型

实例解析C++/CLI中的接口与泛型2007-10-10 天极 谢启东接口某些时候,让不相关的类分享一组公有成员,以便产生相同的行为,是非常有用的。一个最基本的方法可能是通过一个公共的基类来定义它们,但这种方法太受局限,因为它要求这些类通过继承而互相关联,另外,它们也许还有着各自的基类,且CLI类型只支持单一类继承。C++/CLI提供了一种方法,可利用多个类实现一组通用的功能,这就是我们通称的"接口",而一个接口则是一组成员函数的声明。...
缓冲区溢出还是问题吗?C++/CLI安全编码

缓冲区溢出还是问题吗?C++/CLI安全编码

缓冲区溢出还是问题吗?C++/CLI安全编码2007-10-10 天极 谢启东C++/CLI是对的一个扩展,其对所有类型,包括标准C++类,都添加了对属性、事件、垃圾回收、及泛型的支持。Visual C++ 2005扩展了对使用C++/CLI(通用语言基础结构)开发运行于带有垃圾回收的虚拟机上的控件及应用程序的支持,而C++/CLI是对C++编程语言的一个扩展,其对所有类型,包括标准C++类,都添加了如属性、事件、垃圾回收、及泛型等特性。Visual C+...
如何成为一名C++程序员

如何成为一名C++程序员

如何成为一名C++程序员2007-10-10 网 入门:入门就是要初步对的思想有个了解,并且能编程解决一些小问题。入门一定要选好书,难度如果太低了会造成对读者的误导,以为编程就是这么回事;也不能太高深,免的打击读者的信心。既然编程的入门要求是编一些小程序解决小问题,那么就没必要直接学习C++,我觉得循环、判断、跳转、指针才是最基本的编程思想,学通了这些对以后学习C++很有帮助。我建议应该先把C扎实地学好,不光要掌握C的语法,因为学习编程的最终目的是解决实际...
C++的管理扩展

C++的管理扩展

C++的管理扩展2007-10-10 网 简介管理扩展是一组语言扩展,它帮助Microsoft Visual C++开发人员为微软.NET编写应用程序。管理扩展是有用的,如果你:希望提高开发人员使用C++编写.NET应用程序的生产率要分阶段地将一大段代码从非管理C++中移植到.NET平台上想从.NET Framework应用程序中使用已有的非管理C++组件。想从非管理C++中使用.NET Framework组件在同一应用程序中混合非管理C++代码和.NET...
理解finalize()-析构函数的替代者

理解finalize()-析构函数的替代者

理解finalize()-析构函数的替代者2007-10-10 网 Tim Gooch在许多方面,Java 类似于 C++。Java 的语法非常类似于 C++,Java 有类、方法和数据成员;Java 的类有构造函数; Java 有异常处理。但是,如果你使用过 C++ 会发现 Java 也丢掉一些可能是你熟悉的特性。这些特性之一就是析构函数。取代使用析构函数,Java 支持finalize() 方法。在本文中,我们将描述 finalize() 与析构函数的...
C和C++里面的lvalue和rvalue的释义

C和C++里面的lvalue和rvalue的释义

C和C++里面的lvalue和rvalue的释义2007-10-10 网 在看的文档的时候,看到一个词lvalue,查了金山词霸其释义为 lvalue [计] 左值。因为的确在介绍编译原理的课程中听过这个词,大致知道其意思就没有多想。但是看完GCC文档的这个篇幅,都无法明白全篇在说什么。问题还是出在了lvalue这个词的“左值”是什么意思的理解上了。再找M-W字典,却告知没有这个词。于是google了一把,的确很多地方都称其为左值,...
超越C++ 下一代C++:C++/CLI简介

超越C++ 下一代C++:C++/CLI简介

超越C++ 下一代C++:C++/CLI简介2007-10-10 网 一、绪论当微软推出VS.NET7实现了可扩展的托管后,C++程序员们反映不一。尽管大部分的程序员对于能够继续使用C++感到很欣慰,但几乎所有的人对于托管C++提供的晦涩语法感到很痛苦。微软明显从反馈中感觉到托管C++不是那么成功。2003年10月6日,ECMA(欧洲计算机制造商协会)宣布成立专家组,负责结合ISO标准C++与通用语言,开发一个可扩展语言的标准,这个新的可扩展语言被称为C+...
C++类对象的深拷贝、浅拷贝构造函数

C++类对象的深拷贝、浅拷贝构造函数

C++类对象的深拷贝、浅拷贝构造函数2007-10-10cndev-lab.com在学习这一章内容前我们已经学习过了类的构造函数和析构函数的相关知识,对于普通类型的对象来说,他们之间的复制是很简单的,例如:int a = 10;int b =a;自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:#include <iostream>using namespace std;class Test{public:Test(in...
编程软件系列之C++编程技巧

编程软件系列之C++编程技巧

编程软件系列之C++编程技巧2007-10-10 网 C++语言是一个面向对象的语言,使用编写的代码更加简捷、高效,更具可维护性和可重用性。但是很多人使用了C++语言后却感到C++与C编程没有什么区别。这其实是由于对C++语言的特点和特色理解和使用不够造成的。事实上,没有任何一个程序员使用C语言的编程效率可以超过C++语言的。一、使用new和delete进行动态内存分配和释放运算符new和delete是C++新增的运算符,提供了存储的动态分配和释放功能。它...
算24点程序:面向过程与面向对象的C++

算24点程序:面向过程与面向对象的C++

算24点程序:面向过程与面向对象的C++2007-10-10 网 1、概述给定4个整数,其中每个数字只能使用一次;任意使用 + - * / ( ) ,构造出一个表达式,使得最终结果为24,这就是常见的算24点的游戏。这方面的很多,一般都是穷举求解。本文介绍一种典型的算24点的程序算法,并给出两个具体的算24点的程序:一个是面向过程的C实现,一个是面向对象的java实现。2、基本原理基本原理是穷举4个整数所有可能的表达式,然后对表达式求值。表达式的定义: e...
<< 151 152 153 154 155 156 157 158 159 160 >>