Welcome 微信登录

首页 / 软件开发 / C++

类模拟及多态、继承

类模拟及多态、继承

类模拟及多态、继承2007-05-15在面向对象的语言里面,出现了类的概念。这是编程思想的一种进化。所谓类:是对特定数据的特定操作的集合体。所以说类包含了两个范畴:数据和操作。而C语言中的suct仅仅是数据的集合。(liyuming1978@163.com) 1.实例:下面先从一个小例子看起#ifndef C_Class #define C_Class suct#endif C_Class A { C_Class A *A_this; void (*Fo...
类模拟的性能分析

类模拟的性能分析

类模拟的性能分析2007-05-15类模拟中使用了大量的函数指针,结构体等等,有必须对此进行性能分析,以便观察这样的结构对程序的整体性能有什么程度的影响。 1.函数调用的开销#define COUNTER XXvoid testfunc(){int i,k=0;for(i=0;i<YY;i )} 在测试程序里面,我们使用的是一个测试函数,函数体内部可以通过改变YY的值来改变函数的耗时。测试对比是 循环调用XX次函数,和循环XX次函数内部的YY循环...
C++/CLI中实现singleton模式

C++/CLI中实现singleton模式

C++/CLI中实现singleton模式2007-05-15 博客园 吴尔平 双重检测锁(Double-Checked Locking)实现的Singleton模式在多线程应用中有相当的价值。在ACE的实现中就大量使用ACE_Singleton模板类将普通类转换成具有Singleton行为的类。这种方式很好地消除了一些重复代码臭味,而且,优化后的性能较标准互斥版本提高15倍。最近在用C++/CLI做一些工作,Singleton不可避免地需要用到,于是我又...
C++/CLR泛型与C++模板之间的对比

C++/CLR泛型与C++模板之间的对比

C++/CLR泛型与C++模板之间的对比2007-05-15 天极 陶刚编译Visual Studio 2005把泛型编程的类型参数模型引入了微软.NET框架组件。C++/CLI支持两种类型参数机制--通用语言运行时(CLR)泛型和C++模板。本文将介绍两者之间的一些区别--特别是参数列表和类型约束模型之间的区别。 参数列表又回来了 参数列表与函数的信号(signature)类似:它标明了参数的数量和每个参数的类型,并把给每个参数关联一个唯一的标识符...
C++:最强大的.NET语言之内存与资源

C++:最强大的.NET语言之内存与资源

C++:最强大的.NET语言之内存与资源2007-05-16 天极 谢启东编… 当运行环境中包含垃圾回收机制时,区别开内存管理和资源管理,就非常重要了。典型地来说,垃圾回收器只对包含对象的内存之分配与释放感兴趣,它可不关心你的对象是否拥有其他的资源,如数据库连接或核心对象的句柄。 内存管理 本地C++为程序员提供了超越内存管理的直接控制能力,在堆栈上分配一个对象,意味着只有在进入特定函数时,才会为对象分配内存,而当函数返回或堆栈展开时,内存被释放。可...
C++:最强大的.NET语言之装箱

C++:最强大的.NET语言之装箱

C++:最强大的.NET语言之装箱2007-05-16 天极 谢启东编…再论类型 在讨论装箱(boxing)之前,有必要弄清楚为什么值类型与引用类型之间会有所区别。 一个含有数值的值类型的实例,和一个指向对象的引用类型的实例,它们有什么区别呢?除了存储对象所需的内存之外,每一个对象都会有一个对象头,目的是为面向对象的编程提供基本的服务,如存在虚方法的类,嵌入其中的元数据等等。由虚方法和接口间接结合的对象头,其内存开销通常会很大,哪怕你所需要的只是一个静...
C++:最强大的.NET语言之可访问性

C++:最强大的.NET语言之可访问性

C++:最强大的.NET语言之可访问性2007-05-16 天极 谢启东编… CLR定义了一些用于访问存取的修饰成分,其作用超越了本地C++中类成员函数与变量的对等物(如:public、private、protected),不仅如此,甚至还能定义命名空间或嵌套类型的可访问性。为了让C++/CLI达到作为低级语言的目标,除访问性之外,它还提供了比其他CLR平台高级语言更多的控制。 本地C++可访问性与CLR中定义的可访问性相比,其最大不同之处在于:本地C...
C++:最强大的.NET语言之对象构造

C++:最强大的.NET语言之对象构造

C++:最强大的.NET语言之对象构造2007-05-16 天极 谢启东编…简介 Visual C++开发小组花了大量的时间用于听取用户的意见,在对 .NET和C++经过仔细考量之后,决定在Visual C++ 2005中重新设计对通用语言运行时库(CLR)的支持,此项重新的设计被称为"C++/CLI",它将为使用及编写CLR类型提供更自然的语法。在本文中,主要探讨了新的语法,并将之与C#和托管C++这两个CLR平台上极其相近的语言进...
Visual Studio 2005中C++的变化

Visual Studio 2005中C++的变化

Visual Studio 2005中C++的变化2007-05-16 天极 wxfnj编…下一代visual studio版本(以前whidbey,现在是visual studio 2005)提供更加丰富的改进的库文件和没有很多幕后精简和加速的压力,它的大量配合的工具和新的功能将使开发者的开发过程变得简单有趣,对我而言,这些与visual studio 2005对C++的处理相比就显得有些苍白,这里我主要谈谈在下一代visual studio中C++的变...
下一代C++:C++/CLI语言的属性探索

下一代C++:C++/CLI语言的属性探索

下一代C++:C++/CLI语言的属性探索2007-05-16 天极 刘涛前言: 本文展示了欧洲计算机开发商协会正在发展的C++/CLI(一种不同的C++语言,它方便开发人员在微软的.NET框架下更容易地开发程序)语言在C++语言上的扩展。写这篇文章的目的并不是要建议标准C++包括这部分扩展,也不是对C++/CLI的认可,而只是在探讨C++/CLI语言在这一领域的发展方向。 一、基础知识 C++/CLI中的属性是类似与各种数据成员(有各种操作限制)...
在managed C++应用中使用ADO.NET

在managed C++应用中使用ADO.NET

在managed C++应用中使用ADO.NET2007-05-16 51dotnet Tacone译摘要: 文中就用ADO.NET数据对象访问数据库及从数据库回取数据的基本原理作出示例说明。 正文: 本文提供了一个由应用向导生成的基于标准Managed C++应用的实例,它用.NET的ADODataReader类从数据库中取回一个只读(read-only)、只前移(forward-only)的数据流。就是因为在内存中一次仅一行,可用数据读取器...
完美的C++:C++/CLI

完美的C++:C++/CLI

完美的C++:C++/CLI2007-05-16 天极 刘涛什么是C++/CLI呢?C++当然指的是Bjarne Stroustrup在BELL实验室发明的C++语言,它实现了运行时取得速度和尺寸最佳化的静态对象模型,然而它除了堆分配外不支持程序的动态修改,它准许无限地接近底层设备,但在程序运行过程中几乎无法操作活动类型,也无法操作与程序相关联的底层结构。Herb Sutter,C++/CLI的主要构造者之一,称C++是一门“混凝土&rdquo...
超越C++:下一代C++--C++/CLI简介

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

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

C++/CLI程序进程之间的通讯

C++/CLI程序进程之间的通讯2007-05-15 天极 谢启东编…现在,把大型软件项目分解为一些相交互的小程序似乎变得越来越普遍,程序各部分之间的通讯可使用某种类型的通讯协议,这些程序可能运行在不同的机器上、不同的操作系统中、以不同的语言编写,但也有可能只在同一台机器上,实际上,这些程序可看成是同一程序中的不同线程。而本文主要讨论C++/CLI程序间的通讯,当然,在此是讨论进程间通讯,而不是网络通讯。简介试想一个包含数据库查询功能的应用,通常有一个被称...
托管C++中函数调用的双重转换

托管C++中函数调用的双重转换

托管C++中函数调用的双重转换2007-05-16 Blog 蒋晟在VC.Net中使用默认设置/clr编译时,一个托管函数会产生两个入口点,一个是托管的,供托管代码调用,另外一个是非托管的,供非托管代码调用。但是函数地址,特别是虚函数指针只能有一个值,所以需要有一个默认的入口。 非托管入口点可能是所有调用的默认入口(在 Visual Studio .NET2003 中,编译器总是会选择非托管入口,但是在Visual Studio 2005中,如果参数或者...
托管C++中GDI+和GDI混合编程技术

托管C++中GDI+和GDI混合编程技术

托管C++中GDI+和GDI混合编程技术2007-05-16 天极 丁有和1.引言早期的Windows程序中,可以使用GDI(Graphics Device Interface,图形设备接口)在一个窗体中绘制图形、文本和图像,但它的功能比较有限,尤其是图像处理方面。GDI+是GDI的一个新版本,它不仅在GDI基础上添加许多新特性,而且对原有的GDI功能进行优化,并在为开发人员提供的二维矢量图形、文本、图像处理、区域、路径以及图形数据矩阵等方面构造了一系列相...
用托管C++编写Windows服务

用托管C++编写Windows服务

用托管C++编写Windows服务2007-05-16 天极 谢启东编…多年以来,只要提到编写Windows服务,就会想到用Visual C++编写,同时,这也是其中一件C++程序员可以做,而VB程序员不可以做的事情。以前,我们只称其为"服务"或"NT服务",现在,它们被命名为"Windows服务",而且用VB.NET或C#也可以很容易地编写。但是,如果你想用托管C++来编写呢?毕竟,大多数有经验...
用C设计 用C++编码

用C设计 用C++编码

用C设计 用C++编码2007-10-07 Csdn博客 孟岩《不得不看的两次从回归C的高手评论C++》中先是提了一下所谓C++带来的思想包袱(文言文曰“心智包袱”)问题,然后重重地引用了Linus的话:“关键是设计”,其实他是在暗示:好的设计C同样能做出来,不劳C++大驾;而C++一旦出面,就要让人背上额外的思想包袱。 我明确地表个态,在系统级程序设计中,事实就是这样的。别小看这个思想包袱,大部分,甚至绝大...
为什么使用C++

为什么使用C++

为什么使用C++2007-10-07 51CTO.com 刘未鹏问题 为什么使用++?在你皱眉准备关掉这个网页之前,试着回答这样一个简单的问题。答案是效率,是吗?每个人都知道答案。但是,我们应该以更专业的角度来讨论一种编程语言或是与之相关的事情。那么,让我再问你一个问题:效率是否是人们选择使用C++的唯一理由,为什么他们不用C呢?C的效率公认比C++高(当然,我知道,现已证明在某种程度上说,C并不比C++高效,但请不要在此挑错,因为即使他们是等效的,问题仍...
用于计算四则混合运算表达式的递归函数第二版

用于计算四则混合运算表达式的递归函数第二版

用于计算四则混合运算表达式的递归函数第二版2007-10-07 ccrun.com billow3用于计算四则混合运算表达式的递归函数第二版更新于2007-08-28 by billow3(QQ:41965573)注:本文在发表时稍作了排版,如果有因排版引起的代码工作不正常请来信告知我们#include <math.h>#pragma warn -8060 // 屏蔽编译时的 Possibly incorrect assignment 警告An...
<< 151 152 153 154 155 156 157 158 159 160 >>