<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lop5712</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lop5712]]></copyright><item><title><![CDATA[C++从零开始（十二）——何谓面向对象编程思想]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/75403</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/75403</guid><author>lop5712</author><pubDate>Sun, 15 Aug 2004 16:53:00 +0800</pubDate><description><![CDATA[C++从零开始（十二） ——何谓面向对象编程思想     前面已经说明了C++中最重要的概念——类，并且介绍了大部分和类相关的知识，至此，已经可以开始做些编程方面比较高级的应用——设计程序，而不再只是将算法变成代码。要说明如何设计程序，有必要先了解何谓编程思想。编程思想    编程，即编写程序，而之前已经说过，程序就是方法的描述，那么编程就是编写方法的描述。我知道如何到人民公园]]></description><category></category></item><item><title><![CDATA[C++从零开始（十一）下篇——类的相关知识]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/53960</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/53960</guid><author>lop5712</author><pubDate>Wed, 28 Jul 2004 02:57:00 +0800</pubDate><description><![CDATA[ C++从零开始（十一）下篇  ——类的相关知识      由于篇幅限制，本篇为《C++从零开始（十一）》的下篇，讨论多态性及一些剩下的问题。 虚的含义     本文的中篇已经介绍了虚的意思，就是要间接获得，并且举例说明电视机的频道就是让人间接获得电视台频率的，因此其从这个意义上说是虚的，因为它可能操作失败——某个频道还未调好而导致一片雪花。并且说明了间接的好处，就是只用编好一段代码（按5频道），]]></description><category></category></item><item><title><![CDATA[C++从零开始（十一）中篇——类的相关知识]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/53184</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/53184</guid><author>lop5712</author><pubDate>Tue, 27 Jul 2004 12:52:00 +0800</pubDate><description><![CDATA[C++从零开始（十一）中篇 ——类的相关知识     本文关于虚函数的论述有一处严重错误，关于此错误已在本文的评论中说明，对此造成的不便，在此深感抱歉。    由于篇幅限制，本篇为《C++从零开始（十一）》的中篇，说明多重继承、虚继承和虚函数的实现方式。多重继承    这里有个有趣的问题，如下：    struct A { long a, b, c; char d; }; ]]></description><category></category></item><item><title><![CDATA[C++从零开始（十一）上篇——类的相关知识]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/51433</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/51433</guid><author>lop5712</author><pubDate>Sun, 25 Jul 2004 17:20:00 +0800</pubDate><description><![CDATA[ C++从零开始（十一）上篇  ——类的相关知识      前面已经介绍了自定义类型的成员变量和成员函数的概念，并给出它们各自的语义，本文继续说明自定义类型剩下的内容，并说明各自的语义。 权限     成员函数的提供，使得自定义类型的语义从资源提升到了具有功能的资源。什么叫具有功能的资源？比如要把收音机映射为数字，需要映射的操作有调整收音机的频率以接收不同的电台；调整收音机的音量；打开和关闭收音机]]></description><category></category></item><item><title><![CDATA[C++从零开始（十）——何谓类]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/51430</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/51430</guid><author>lop5712</author><pubDate>Sun, 25 Jul 2004 17:18:00 +0800</pubDate><description><![CDATA[ C++从零开始（十）  ——何谓类      前篇说明了结构只不过是定义了内存布局而已，提到类型定义符前还可以书写class，即类型的自定义类型（简称类），它和结构根本没有区别（仅有一点小小的区别，下篇说明），而之所以还要提供一个class，实际是由于C++是从C扩展而成，其中的class是C++自己提出的一个很重要的概念，只是为了与C语言兼容而保留了struct这个关键字。不过通过前面括号中所]]></description><category></category></item><item><title><![CDATA[C++从零开始（九）——何谓结构]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/43797</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/43797</guid><author>lop5712</author><pubDate>Sat, 17 Jul 2004 14:32:00 +0800</pubDate><description><![CDATA[C++从零开始（九） ——何谓结构     前篇已经说明编程时，拿到算法后该干的第一件事就是把资源映射成数字，而前面也说过“类型就是人为制订的如何解释内存中的二进制数的协议”，也就是说一个数字对应着一块内存（可能4字节，也可能20字节），而这个数字的类型则是附加信息，以告诉编译器当发现有对那块内存的操作语句（即某种操作符）时，要如何编写机器指令以实现那个操作。比如两个char类型的数字]]></description><category></category></item><item><title><![CDATA[C++从零开始（八）——C++样例一]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/41374</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/41374</guid><author>lop5712</author><pubDate>Wed, 14 Jul 2004 14:55:00 +0800</pubDate><description><![CDATA[ C++从零开始（八）  ——C++样例一      前篇说明了函数的部分实现方式，但并没有说明函数这个语法的语义，即函数有什么用及为什么被使用。对于此，本篇及后续会零散提到一些，在《C++从零开始（十二）》中再较详细地说明。本文只是就程序员的基本要求——拿得出算法，给得出代码——给出一些样例，以说明如何从算法编写出C++代码，并说明多个基础且重要的编程概念（即独立于编程语言而存在的概念）。 由算]]></description><category></category></item><item><title><![CDATA[C++从零开始（七）——何谓函数]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/39232</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/39232</guid><author>lop5712</author><pubDate>Sun, 11 Jul 2004 21:42:00 +0800</pubDate><description><![CDATA[C++从零开始（七） ——何谓函数     本篇之前的内容都是基础中的基础，理论上只需前面所说的内容即可编写出几乎任何只操作内存的程序，也就是本篇以后说明的内容都可以使用之前的内容自己实现，只不过相对要麻烦和复杂许多罢了。    本篇开始要比较深入地讨论C++提出的很有意义的功能，它们大多数和前面的switch语句一样，是一种技术的实现，但更为重要的是提供了语义的概念。所以，本篇开始将]]></description><category></category></item><item><title><![CDATA[C++从零开始（六）——何谓语句]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/36445</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/36445</guid><author>lop5712</author><pubDate>Wed, 07 Jul 2004 20:20:00 +0800</pubDate><description><![CDATA[ C++从零开始（六）  ——何谓语句      前面已经说过程序就是方法的描述，而方法的描述无外乎就是动作加动作的宾语，而这里的动作在C++中就是通过语句来表现的，而动作的宾语，也就是能够被操作的资源，但非常可惜地C++语言本身只支持一种资源——内存。由于电脑实际可以操作不止内存这一种资源，导致C++语言实际并不能作为底层硬件程序的编写语言（即使是C语言也不能），不过各编译器厂商都提供了自己的嵌]]></description><category></category></item><item><title><![CDATA[C++从零开始（五）——何谓指针]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/36442</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/36442</guid><author>lop5712</author><pubDate>Wed, 07 Jul 2004 20:18:00 +0800</pubDate><description><![CDATA[C++从零开始（五） ——何谓指针  （本文由于为初次书写，思考不全，容易引起概念混乱，不建议阅读，请另参看《指针及其语义和运用》）    本篇说明C++中的重中又重的关键——指针类型，并说明两个很有意义的概念——静态和动态。数组    前面说了在C++中是通过变量来对内存进行访问的，但根据前面的说明，C++中只能通过变量来操作内存，也就是说要操作某块内存，就必须先]]></description><category></category></item><item><title><![CDATA[C++从零开始（四）——赋值操作符]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/36439</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/36439</guid><author>lop5712</author><pubDate>Wed, 07 Jul 2004 20:16:00 +0800</pubDate><description><![CDATA[ C++从零开始（四）  ——赋值操作符      本篇是《C++从零开始（二）》的延续，说明《C++从零开始（二）》中遗留下来的关于表达式的内容，并为下篇指针的运用做一点铺垫。虽然上篇已经说明了变量是什么，但对于变量最关键的东西却由于篇幅限制而没有说明，下面先说明如何访问内存。 赋值语句     前面已经说明，要访问内存，就需要相应的地址以表明访问哪块内存，而变量是一个映射，因此变量名就相当于一]]></description><category></category></item><item><title><![CDATA[C++从零开始（三）——何谓变量]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/36437</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/36437</guid><author>lop5712</author><pubDate>Wed, 07 Jul 2004 20:14:00 +0800</pubDate><description><![CDATA[ C++从零开始（三）  ——何谓变量      本篇说明内容是C++中的关键，基本大部分人对于这些内容都是昏的，但这些内容又是编程的基础中的基础，必须详细说明。 数字表示     数学中，数只有数值大小的不同，绝不会有数值占用空间的区别，即数学中的数是逻辑上的一个概念，但电脑不是。考虑算盘，每个算盘上有很多列算子，每列都分成上下两排算子。上排算子有2个，每个代表5，下排算子有4个，每个代表1（这]]></description><category></category></item><item><title><![CDATA[C++从零开始（二）——何谓表达式]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/36434</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/36434</guid><author>lop5712</author><pubDate>Wed, 07 Jul 2004 20:12:00 +0800</pubDate><description><![CDATA[C++从零开始（二） ——何谓表达式     本篇是此系列的开头，在学英语时，第一时间学的是字母，其是英语的基础。同样，在C++中，所有的代码都是通过标识符（Identifier）、表达式（Expression）和语句（Statement）及一些必要的符号（如大括号等）组成，在此先说明何谓标识符。标识符    标识符是一个字母序列，由大小写英文字母、下划线及数字组成，用于标识。]]></description><category></category></item><item><title><![CDATA[C++从零开始（一）——何谓编程]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/36431</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/36431</guid><author>lop5712</author><pubDate>Wed, 07 Jul 2004 20:09:00 +0800</pubDate><description><![CDATA[ C++从零开始（一）  ——何谓编程  引言     曾经有些人问我问题，问得都是一些很基础的问题，但这些人却已经能使用VC编一个对话框界面来进行必要的操作或者是文档/视界面来实时接收端口数据并动态显示曲线（还使用了多线程技术），却连那些基础的问题都不清楚，并且最严重的后果就是导致编写出拙劣的代码（虽然是多线程，但真不敢恭维），不清楚类的含义，混杂使用各种可用的技术来达到目的（连用异常代替选择语]]></description><category></category></item><item><title><![CDATA[COM样例（二）——样例结构设计]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/21364</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/21364</guid><author>lop5712</author><pubDate>Wed, 19 May 2004 13:18:00 +0800</pubDate><description><![CDATA[COM样例（二）——样例结构设计    本文为《COM样例》系列文章的第二篇，说明样例的结构，解释COM的编程思想，并帮助理解样例代码。样例目标    欲给一个公司做一个信息管理系统，也就是公司中所有部门的信息可以被输入电脑，并可进行分布式查询，即总经理可随时查询最新的订单情况和出货情况。由于使用COM作为此信息管理系统的基架，可以很容易的解决分布式问题，并且由于COM对安全的]]></description><category></category></item><item><title><![CDATA[COM深入理解（下）——方法参数类型为CRuntimeClass*、void*等]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/21368</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/21368</guid><author>lop5712</author><pubDate>Sat, 01 May 2004 21:25:00 +0800</pubDate><description><![CDATA[COM深入理解（下） ——方法参数类型为CRuntimeClass*、void*等     本文上篇已经说明了类对象实际是一个结构实例，并且为了实现进程间传递类对象指针以达到引用的目的，需要为此类专门编写一个代理类，并在传递时例示（即实例化）其一个对象以实现代理对象。而此代理类必定分成两部分，即一部分的成员函数专门在客户进程被调用，另一部分专门在组件进程被调用以实现进程间的数据传递进而]]></description><category></category></item><item><title><![CDATA[COM样例（三）——组件端代码]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/21365</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/21365</guid><author>lop5712</author><pubDate>Sat, 01 May 2004 21:21:00 +0800</pubDate><description><![CDATA[COM样例（三） ——组件端代码     本文为此系列文章的重点，前面设计的接口都只是辅助性质，与COM线程模型没有一点关系。由于客户和和组件实现的接口IModule、IModuleSite等都包有界面的传递，出于利用MFC的界面包装功能而都使用MFC来实现，故全部运行在STA套间中，并可使得组件的窗口亦使用客户端主线程来派送消息。    假设调用远程组件的方法以实现业务逻辑，由于]]></description><category></category></item><item><title><![CDATA[COM深入理解（上）——方法参数类型为CRuntimeClass*、void*等]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/21367</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/21367</guid><author>lop5712</author><pubDate>Wed, 28 Apr 2004 22:53:00 +0800</pubDate><description><![CDATA[COM深入理解（上） ——方法参数类型为CRuntimeClass*、void*等     经常见到论坛上有问如何传递void*或一个自定义类，如：class CA; CA*等。本文就COM的运作方式说明如何传递一自定义类对象的指针，并澄清MIDL的作用，以说明其并不是必须的。注意，本文所说的自定义类型传递与自动化技术（基于IDispatch）中的自定义结构的传递不是同一个概念，没有任]]></description><category></category></item><item><title><![CDATA[COM样例（四）——客户端代码]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/21366</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/21366</guid><author>lop5712</author><pubDate>Mon, 26 Apr 2004 11:52:00 +0800</pubDate><description><![CDATA[COM样例（四） ——客户端代码     本文为此系列文章的最后一篇，罗列客户端的源代码。客户端使用MFC实现，其中的框架类CMainFrame实现了IModuleSite、IErrorReport和ICompanyInfo，而另一个窗口包装类CTaskManager实现ITaskManager，并由CMainFrame聚合它以表现出CMainFrame实现了ITaskManager。]]></description><category></category></item><item><title><![CDATA[COM样例（一）——《COM线程模型》基础篇]]></title><link>https://blog.youkuaiyun.com/lop5712/article/details/21363</link><guid>https://blog.youkuaiyun.com/lop5712/article/details/21363</guid><author>lop5712</author><pubDate>Mon, 26 Apr 2004 10:57:00 +0800</pubDate><description><![CDATA[ COM样例（一） ——《COM线程模型》基础篇     我曾经写了一篇《COM线程模型》，受到一些好评，但也有部分人觉得其有些深，希望能提供一些基础点的文章。本系列文章是《COM线程模型》这篇文章的样例，提供一个简单的稍完整的例子以帮助理解前面文章中的内容。本文是此系列的第一篇，讲解《COM线程模型》中出现过的我以为可能需要说明的基础概念，在后继的文章中说明样例的结构，并给出相关各部分代码，以注]]></description><category></category></item></channel></rss>