随笔分类 -  C/C++

上一页 1 ··· 3 4 5 6 7
摘要:class Widget{public: Widget():a_(0) {} Widget(int a):a_(a) {} operator int& () { return a_; }private: int a_;};int main(){ Widget w(189); int a = w; cout<<a<<endl; return 0;}其中operator int& ()即为隐式转换操作符,返回int&的类型。。。。C++,函数对象 ... 阅读全文
posted @ 2010-11-08 11:37 小 楼 一 夜 听 春 雨 阅读(470) 评论(0) 推荐(0)
摘要:T* pInstance = 0;T* getInstance(){ if (pInstance == NULL) { lock(); if (pInstance == NULL) pInstance = new T; unlock(); } return pInstance;}如果两个线程同时发起当为null时,其中一个线程创建示例,因为有同步的关系,另一个线程开始被阻塞,然后等示例创建完毕,第二个线程又创建了一个新的示例;导致创建了2次。。。所以要判断2次。。。 阅读全文
posted @ 2010-10-28 22:03 小 楼 一 夜 听 春 雨 阅读(236) 评论(0) 推荐(0)
摘要:这篇文章主要讲解虚继承的C++对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。原文见这里(By Edsko de Vries, January 2006) 敬告:本文是介绍C++的技术文章,假定读者对于C++有比较深入的认识,同时也需要一些汇编知识。本文我们将阐释GCC编译器针对多重继承和虚拟继承下的对象内存布局。尽管在理想的使用环境中,一个C++程序员并不需要了解这些编译器内部实现细节,实际上,编译器针对多重继承(特别是虚拟继承)的各种实现细节对于我们编写C++代码都或多或少产生一些影响(比如do 阅读全文
posted @ 2010-10-21 09:23 小 楼 一 夜 听 春 雨 阅读(617) 评论(0) 推荐(0)
摘要:浅谈内存泄漏(一)对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟,但是在c/c++领域的发展并不顺畅,虽然很早就有人思考在C++中也加入GC的支持。现实世界就是这样的,作为一个c/c++程序员,内存泄漏是你心中永远的痛。不过好在现在有许多工具能够 阅读全文
posted @ 2010-10-15 09:24 小 楼 一 夜 听 春 雨 阅读(302) 评论(0) 推荐(0)
摘要:#include<set>#include<iterator>#include<iostream>#include <algorithm>using namespace std;int main(){ set<int> eg1; eg1.insert(1); eg1.insert(100); eg1 阅读全文
posted @ 2010-10-06 15:43 小 楼 一 夜 听 春 雨 阅读(12711) 评论(1) 推荐(0)
摘要:#include<iostream>#include<io.h>using namespace std; void main(){ _finddata_t file; long lf; if((lf = _findfirst("C:\\WINDOWS\\*.*",&file)) 1l)//_find 阅读全文
posted @ 2010-09-25 19:31 小 楼 一 夜 听 春 雨 阅读(483) 评论(0) 推荐(0)
摘要:今天跟一个在腾讯工作的同学聊天了,他问我如何将一个数转换为一个字符串,我跟他说是这样的: char buffer[10];_itoa(i, buffer, 10); 可是他说不一定是int型转化为字符串,我着这样回答的:循环将这个数字乘以10,计数。转化为long型后,使用_ltoa()函数,然后再 阅读全文
posted @ 2010-09-25 15:07 小 楼 一 夜 听 春 雨 阅读(1477) 评论(0) 推荐(0)
摘要:ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准 阅读全文
posted @ 2010-09-25 15:03 小 楼 一 夜 听 春 雨 阅读(2183) 评论(0) 推荐(0)
摘要:初次接触这两个接口也许会混淆,其实接口的命名就是对功能的绝佳描述,resize就是重新分配大小,reserve就是预留一定的空间。这两个接口即存在差别,也有共同点。下面就它们的细节进行分析。 为实现resize的语义,resize接口做了两个保证: 一是保证区间[0, new_size)范围内数据有效,如果下标index在此区间内,vector[indext]是合法的。 二是保证区间[0, new_size)范围以外数据无效,如果下标index在区间外,vector[indext]是非法的。 reserve只是保证vector的空间大小(capacity)最少达到它的参数所指定的大小n。在区. 阅读全文
posted @ 2010-08-26 10:55 小 楼 一 夜 听 春 雨 阅读(513) 评论(0) 推荐(0)
摘要:1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回值 <0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == 阅读全文
posted @ 2010-05-09 17:27 小 楼 一 夜 听 春 雨 阅读(2907) 评论(0) 推荐(0)
摘要:ACE_NEW_RETURN的出处,有三个定义,都在OS_Memory.h中定义,可能是用于适应不同的平台而作的吧。下面的这个是最容易看懂的,用了try-catch语句。 # define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) / do { try 阅读全文
posted @ 2010-05-09 17:02 小 楼 一 夜 听 春 雨 阅读(1301) 评论(0) 推荐(0)
摘要:ACE框架在网络游戏服务器中的设计与应用 陶 道,万旺根 (上海大学 通信与信息工程学院 上海 200072) 随着计算机网络的发展,特别是因特网的出现,数字娱乐和网络游戏产业得到了蓬勃的发展,异军突起的网络游戏成为中国网络产业中的先锋。而由 于信息技术的进步,计算机、手机以及不同的传媒终端等不断涌 阅读全文
posted @ 2010-04-13 12:17 小 楼 一 夜 听 春 雨 阅读(1693) 评论(0) 推荐(1)
摘要:http://www.cnblogs.com/coderzh/ http://www.cnitblog.com/zouzheng/archive/2009/09/28/61614.html 这两个网站上面有很好的介绍教程和例子。 阅读全文
posted @ 2010-04-09 10:40 小 楼 一 夜 听 春 雨 阅读(288) 评论(0) 推荐(0)
摘要:我用VS2008: 1. 打开msvc里面的工程文件sln,直接batch build all。 2. 在msvc里面的Debug或是Release目录里看到编译出来的gtestd.lib或是gtest.lib 文件。 3. 设置include和libaray文件。(Tools--options-- 阅读全文
posted @ 2010-04-09 10:03 小 楼 一 夜 听 春 雨 阅读(3183) 评论(0) 推荐(0)
摘要:Boost.Bimap 是一个C++的双向 map 库。使用 Boost.Bimap,你可以创建两个类型都可用作键值的关联容器。bimap<X,Y> 可以被视为 std::map<X,Y> 加上 std::map<Y,X>。如果你知道如何使用标准容器,那么 bimap 的学习曲线就几乎是平的。在 B 阅读全文
posted @ 2010-03-25 18:54 小 楼 一 夜 听 春 雨 阅读(4174) 评论(0) 推荐(1)

上一页 1 ··· 3 4 5 6 7