摘要: 几个月之前,我在一家小的软件公司上班。在我来到这家公司的时候,这家公司里面负责C++开发的程序员老L是一个二把刀。原来他是做C#开发的,后来不知道为什么来到这家小公司做C++开发的。我来到公司的第一天就开始了加班的生活,比较累,也很郁闷。做IT的,加班,倒也算可以接受,但是有一点,让很多人会非常的郁闷。那就老L这人为人做事,实在让人有点郁闷。他从不让人修改他写过的代码,这是让我非常郁闷的。为此我和他也吵过,但是死活不相信,坚决不让别人修改他写过的代码。我不知道大家在遇到这样的情况该怎么办?也许大家有一些技术上的高招,也许和我一样没技术含量一般和他斗斗嘴,然后偷偷改几个必须修改的类。但是事情过去 阅读全文

posted @ 2012-04-06 02:59 一年级的小学生 阅读(704) 评论(2) 推荐(0) 编辑

2016年10月30日

摘要: 说明:目前为止我找到三种查找与替换功能,如果有更多的方式,请在下面留言 第一种:我们常用的查找以及查找与替换功能 在Windows下,使用Ctrl+f 快捷键查找。用Ctrl+h来进行查找与替换功能。 在Xcode下,我们使用CMOMAND+Shift+F来进行查找,用Command+Shift+A 阅读全文

posted @ 2016-10-30 23:11 一年级的小学生 阅读(801) 评论(0) 推荐(0) 编辑

摘要: Mac系统使用 阅读全文

posted @ 2016-10-30 12:00 一年级的小学生 阅读(2016) 评论(0) 推荐(0) 编辑

2013年3月6日

摘要: Response.setContentType(MIME_TYPE) 的作用是使客户端浏览器区分不同类型的数据,并根据MIME_TYPE的不同,调用浏览器内不同的程序嵌入模块来处理相应的数据。例如WEB浏览器通过MIME_TYPE类型来判断文件是GIF图片,还是JSON字符串。Tomcat的安装目录\conf\web.xml中完整定义了MIME_TYPE类型。里面的XML 节点中的类型为mime-mapping中就有其类型。其常见的类型有以下这些:text/htmltext/htmtext/cssimage/bmpimage/gifimage/jpegtext/plaintext/javasc 阅读全文

posted @ 2013-03-06 15:31 一年级的小学生 阅读(2049) 评论(0) 推荐(0) 编辑

2012年4月27日

摘要: COM接口指针很危险,因为使用过程中需要每一个使用者都要严格并且正确的AddRef和Release,一旦出现问题,就会造成对象不能被正常释放,或者对象被重复删除,造成程序崩溃。所以使用COM接口,必须小心翼翼才行。但是,即使所有的代码中,都正确的AddRef和Release,也不一定能保证万无一失,例如:void SomeApp(IHello * pHello){IHello * pCopy = pHello;pCopy->AddRef();OtherApp();pCopy->Hello();pCopy->Release();}看起来无懈可击,但是假设OtherApp中抛出了 阅读全文

posted @ 2012-04-27 09:43 一年级的小学生 阅读(484) 评论(0) 推荐(0) 编辑

2012年4月5日

摘要: 进程中的线程共享的资源有哪些?在计算机操作系统原理里面讲到了进程中的线程共享进程的资源。但是对于进程具体共享哪些资源,书上讲得含糊不清,网上的资料也是比较笼统,没有确切的内容来说明到底哪些资源是共享的,哪些资源是独享的。线程之间共享堆区资源:线程之间共享栈区(堆栈)资源:理由如下:#include <iostream>#include <Windows.h>using namespace std;char *g_pStr = NULL;int *g_pData = 0;DWORD WINAPI ThreadFunc1( LPVOID lpThreadParameter 阅读全文

posted @ 2012-04-05 15:38 一年级的小学生 阅读(5371) 评论(1) 推荐(0) 编辑

2012年4月3日

摘要: #include <Windows.h>#include <iostream>using namespace std;class CMyLock {public: CMyLock(); ~CMyLock();public: bool Lock(); bool UnLock();private: HANDLE hEvent;};CMyLock::CMyLock(){}CMyLock::~CMyLock(){ CloseHandle(hEvent);}bool CMyLock::Lock(){ hEvent = OpenEvent(EVENT_ALL_ACCESS,TRUE 阅读全文

posted @ 2012-04-03 19:06 一年级的小学生 阅读(399) 评论(0) 推荐(0) 编辑

2012年3月11日

摘要: 继承是一个重用和扩展现有类而无需修改该类的机制,从而在两者之间形成层级关系。继承差不多是吧一个对象嵌入到另外一个对象。假设你在类 B 的定义中声明类 A 的一个对象 x 对象,结果,类 B 将能够访问类 A 所有的公共的数据成员以及成员函数。然而,在类 B 中,你想要访问类 A 的所有的公共数据成员以及成员函数,需要通过类 A 的对象 x。 下面的例子示例这些: 1 #include <iostream> 2 using namespace std; 3 4 class A { 5 int data; 6 public: 7 void f(int arg) { data = ar. 阅读全文

posted @ 2012-03-11 05:29 一年级的小学生 阅读(333) 评论(0) 推荐(0) 编辑

2012年3月10日

摘要: 非类型模板参数格式和声明一个下面的类型是一样的。整型或枚举指向一个对象或一个函数引用到一个对象或函数指向一个成员把非类型的模板参数声明为一个数组或者函数,将分别被转换到成指针以及指向函数的指针。下面的例子演示这些:1 template<int a[4]> struct A {};2 template<int f(int)> struct B {};3 4 int i;5 int g(int) {return 0;}6 7 A<&i> x;8 B<&g> y;类型 &i 推导出来是 int *,而类型&g 推导出来是 阅读全文

posted @ 2012-03-10 00:32 一年级的小学生 阅读(1147) 评论(0) 推荐(0) 编辑

2012年3月9日

摘要: 如果你有一个合适的名字来指定一个类型,并且这个名字依赖于模板的参数,请使用关键字 typename。在模板的声明和定义中只使用关键字typename。下面的例子说明使用关键字typename。1 template<class T> class A2 {3 T::x(y);4 typedef char C;5 A::C d;6 }表达式 T::x(y) 是含糊不清的。它可能是一个调用非本地参数值 y 的函数 x() ,也可能是一个声明类型为 T::x 的变量 y 。C++将把这句表达式理解为一个函数的调用。为了让编译器把这句表达式理解为一个类型,你应该在表达式的开头添加关... 阅读全文

posted @ 2012-03-09 22:29 一年级的小学生 阅读(381) 评论(0) 推荐(0) 编辑