随笔- 57
文章- 0
评论- 37
阅读-
48万
随笔分类 - 2012年3月
C2061:文件相互引用带来的另一个问题
摘要:首先,呵呵,排除掉那些脑残的没有定义某个类就使用该类的情况,直接引入两个类相互引用的情况: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();}//******************************
阅读全文
C++ placement new 的使用方法
摘要:转自: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不同的是,它在括号里
阅读全文
C\C++ :非程序错误
摘要:(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<<
阅读全文