摘要:
首先,呵呵,排除掉那些脑残的没有定义某个类就使用该类的情况,直接引入两个类相互引用的情况:OK,let's get started:假设,现在我们有两个类 A,B//***************************************************"A.h"文件内容如下class A{public : void funA(B b);}"A.cpp"文件内容如下#include "A.h"void A::funA(B b){ b.test();}//****************************** 阅读全文
摘要:
转自:http://www.programfan.com/club/showtxt.asp?id=320940placementnew的含义placementnew是重载operatornew的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operatornew和operatordelete能够被替换)。void*operatornew(size_t,void*p)throw(){returnp;}placementnew的执行忽略了size_t参数,只返还第二个参数。其结果是允许用户把一个对象放到一个特定的地方,达到调用构造函数的效果。和其他普通的new不同的是,它在括号里 阅读全文
摘要:
(1)、error LNK2005 解决方法 查阅MSDN 可知 ,LNK2005 即 :重复定义错误。 常见得原因有 : 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。 其实这是错误的,全局变量是针对整个工程的。 正确的应该是在一个CPP文件中定义如下:int g_Test; 那么在使用的CPP文件中就应该使用:extern int g_Test即可, 如果还是使用int g_Test,那么就会产生LNK2005错误,一般错误错误信息类似:... 阅读全文
摘要:
1、引入fstream iofile("DiskSystem\\haha.txt",ios::in|ios::out|ios::binary); char * n = (char *)malloc(1024); n = "hello worldfdgfdgfdgfdgfdgfdgfd"; iofile.write(n,1024);iofile.seekg(ios::beg); char * s = (char *)malloc(1024); iofile.read(s,1024); iofile.close(); cout<<s<< 阅读全文
摘要:
(转载至:http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip02/,感谢T. W. Burger先生)一个简化的问题示例链表的难点在于必须复制链表处理函数来处理不同的对象,即便逻辑是完全相同的。例如:两个结构类似的链表struct Struct_Object_A{ int a; int b; Struct_Object_A *next;} OBJECT_A;typedef struct Struct_Object_B{ int a; int b; int c; Struct_Objec... 阅读全文
摘要:
在硬件工程师和普通用户看来,内存就是插在或固化在主板上的内存条,它们有一定的容量——比如64 MB。但在应用程序员眼中,并不过度关心插在主板上的内存容量,而是他们可以使用的内存空间——他们可以开发一个需要占用1 GB内存的程序,并让其在OS平台上运行,哪怕这台运行主机上只有128 MB的物理内存条。而对于OS开发者而言,则是介于二者之间,他们既需要知道物理内存的细节,也需要提供一套机制,为应用程序员提供另一个内存空间,这个内存空间的大小可以和实际的物理内存大小之间没有任何关系。 我们将主板上的物理内存条所提供的内存空间定义为物理内存空间;将应用程序员看到的内存空间定义为线性空间。物理内存... 阅读全文
摘要:
一、在解释之前先备注一些缩写的全称便于记忆: 1、EPROM:(Electrically Programmable Read-Only-Memory)电可编程序只读存储器 2、EEPROM(Electrically Erasable Programmable Read - Only Memory)电可擦可编程只读存储器 3、SRAM(Static RAM)静态RAM 4、DRAM(Dynamic RAM)动态RAM 5、DDR SDRAM (Double Date-Rate Synchronous RAM ) 双倍速率 同步动态RAM 6、NOR FLASH (NOR == Not... 阅读全文
摘要:
一、冠词的基本概念冠词,是用来表示名词特性的一种词,它表示名词可数不可数、单数复数、任何一个还是特定的一个等。也就是说,冠词与名词是紧密连在一起的。如果用了a /an /the,不管后面是什么词,都变成了名词。所以,冠词就是放在名词前面的一种词。使用冠词有三种基本情况:1、用a / ana / an 用在单数可数名词前面,表示这个人或事物是泛指的不确定的一个,相当于中文的“一个”。注意:可数的单数名词前,必须要用a / an 或the. 我们不能说 boy, desk, dog,而必须说 a boy / the boy.a 用在读音为辅音开头的名词之前, 而 an 用在读音为元音开头的名词之前 阅读全文
摘要:
连读的条件:相邻的两词在意义上必须密切相关,同属一个意群。连读所构成的音节一般都不重读,只需顺其自然地一带而过,不可读得太重,也不可音。(连读符号:~)(1)“辅音+元音”型连读在同一个意群里,如果相邻两词中的前一个词是以辅音结尾,后一个词是以元音开头,这就要将辅音与元音拼起来连读。I’m~an~English boy.It~is~an~old book.Let me have~a look~at~it.Ms Black worked in~an~office last~yesterday.I called~you half~an~hour~ago.Put~it~on, please.Not~ 阅读全文
摘要:
最近正在学习uCOS-II,其中不乏N多需要对不同变量在系统内存中的位置的了解,下面做下总结,供以后查阅 一下内容转自:http://www.docin.com/p-210019581.html感谢分享。 1、首先,讲下 “堆 heap” 和 “栈 stack” 的区别: 一个由 c/c++编译过的程序占用的内存分为一下几个部分 (1)、栈区 stack :由编译器自动分配释放, 存放函数的参数值,局部变量的值等。 这个栈的操作方式类似于数据结构中的栈。 (2)、堆区 heap :一般由程序员分配释放,若... 阅读全文