随笔分类 - c++
摘要:auto ply = new PlayerChannel();看到这个我想到和new PlayerChannel;到底有啥区别默认构造函数只有当不提供任何构造函数,编译器才会合成一个默认构造函数,参数初始化取决于定义对象的位置当提供一个函数时就不会有默认构造函数不管new PlayerChannel...
阅读全文
摘要:#include#include using namespace std;int main(){ int a = 0; assert(a == 0);//当其不满足时触发 getchar(); return 0;}我以为是满足时触发,结果错了
阅读全文
摘要:一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事,翻了一下《The C++ Programming Language》总算有定论。PDF的竟然不然复制,就把它这章翻译了,如下5.2.1 ...
阅读全文
摘要:#include #include using namespace std;int main(){ //tm转换成字符串 time_t t = time(0); tm tm; localtime_s(&tm, &t); char szTime[64]; spr...
阅读全文
摘要:我们在C++程序中经常看到两种new的使用方式:new A以及new A()。那么这两种究竟有什么区别呢?调用new分配的内存有时候会被初始化,而有时候不会,这依赖于A的类型是否是POD(Plain old data)类型,或者它是否是包含POD成员、使用编译器生成默认构造函数的类。附:POD类型P...
阅读全文
摘要:一,问题提出:class B; class A { public: B b; }; class B { public: A a; }; 以上写法会造成头文件相互包含,是错误的。 因为在A对象中要开辟一块属于B的空间,而B中又有A的空...
阅读全文
摘要:昨天遇到了两个让我解决好长时间的问题,属于比较蛋疼的问题,第一个发现总是发现编译没问题,链接总是错误,检查了半天,发现时头文件相互包含的问题,然后在一个文件里面申明一下,在.cpp文件里包含即可。第二更蛋疼了,也是链接问题,找了半天,发现是一个文件下的文件和另一个文件夹下的文件重名了,然后我把一个相...
阅读全文
摘要:while(!m_SMque.pop(data));看到这个有点忘了,如果pop返回false会一直执行pop,其实这个执行的是空语句,而while每次执行都需要判断条件,所以如果pop返回false会一直执行pop函数
阅读全文
摘要:今天看到这个有点晕了SM_Data**m_ppSMPool;m_ppSMPool = new SM_Data*[nMaxCount];//其实m_ppSMPool还是一个指针,是一个SM_Data*类型的指针,代表里面每个元素是SM_Data*类型,别加个*就吓着了for (int i = 0; i...
阅读全文
摘要:发送端 //1.在页面文件中创建一个可共享的文件句柄 //2使用默认安全对象 //3.可读,可写打开打开映射 //4.最大长度的高32位 //5.最大长度的低32位,此为size大小 //6.指定文件映射对象的名字 //return:新建文件映射对象的句柄,...
阅读全文
摘要:#include struct MyStruct{ MyStruct(int a) { a = b = 0; } int a; int b;};int main(){ MyStruct my = {0};//列表初始化只适合非聚合结构体,所以这样不行...
阅读全文
摘要:我今天在想这个vector,map为什么不能写入共享内存,原来是因为new的时候只是new了这个对象在共享内存上,而真正的堆上的内存并没有在共享内存里面的,如果要想vector可以共享就要重写分配器或者用boost的,看了我们那个结构体还是很复杂的,肯定不适用,看来只有改成数组,对于string为什...
阅读全文
摘要:昨天在上篇blog里描写了如何把STL容器放到共享内存里去,不过由于好久不写blog,发觉词汇组织能力差了很多,不少想写的东西写的很零散,今天刚好翻看自己的书签,看到一篇挺老的文章,不过从共享内存到STL容器讲述得蛮全面,还提供了学习的实例,所以顺便翻译过来,并附上原文地址。共享内存(shm)是当前...
阅读全文
摘要:vector,map这些容器还是在堆上分配的内存,在析构时是释放空间vector在提高性能可以先reserve在push_back()reserve:决定capacity,但没有真正的分配内存,我感觉只是告诉操作系统预留一段空间,但没有真正的分配resize:真正的分配了,可以通过下标访问
阅读全文
摘要:#include #include int* fun(int* a){ std::cout << *a << std::endl;//这样有问题吗???? int temp = 100; return &temp;//这个是典型的错误}int main(){ int a = ...
阅读全文
摘要:shareMemInterOneway m_a2b; //(NET)A->B(GS)单向共享内存shareMemInterOneway m_b2a; //(GS)B->A(NET)单向共享内存m_a2b.init(name2, pid);{ {//内存池的初始化 m_Proces...
阅读全文
摘要:#include#include #include #include #include //解析下面的json//pairint main(){ using namespace boost::property_tree; std::string strJson = "{ \"people...
阅读全文
摘要:今天在c++builder里面调用dll接口,老是出错搞了半天是因为这样调用接口里面不能使用容器,我去,这真心有点坑然后就用了指针操作解决了c++builder 用的是boost1_39版本太老了,要不还有其他的方法。
阅读全文
摘要:A.hstruct A{ int a; int b;}; B.cpp在B.cpp里面用到这个结构体有两种方法1.自己定义一个一模一样的结构体struct A{};2.包含A.h头文件 第一种感觉有点蛋疼同样的结构体定义两次,是不是重复了第二种包含别人的头文件,会带来编译的小麻烦,而且这样...
阅读全文
摘要:鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、...
阅读全文

浙公网安备 33010602011771号