博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2016年3月20日

摘要: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下: #include <string>#include <iostream>#include <boost/shared_ptr.hpp>#include <boost/weak_ptr.hpp> 阅读全文

posted @ 2016-03-20 00:56 sunshinewave 阅读(342) 评论(0) 推荐(0) 编辑

2016年3月19日

摘要: boost::intrusive_ptr一种“侵入式”的引用计数指针,它实际并不提供引用计数功能,而是要求被存储的对象自己实现引用计数功能,并提供intrusive_ptr_add_ref和intrusive_ptr_release函数接口供boost::intrusive_ptr调用。 下面通过一 阅读全文

posted @ 2016-03-19 23:58 sunshinewave 阅读(802) 评论(0) 推荐(0) 编辑

摘要: 1. 声明#include <boost/shared_ptr.hpp> class UsersBitmap { ... } typedef boost::shared_ptr<UsersBitmap> UsersBitmapPtr; 2. 使用 UsersBitmapPtr login_users 阅读全文

posted @ 2016-03-19 22:56 sunshinewave 阅读(13990) 评论(0) 推荐(0) 编辑

2013年8月18日

摘要: 冒着大雨兴致勃勃地来到杭州已经快2个月了。还在经历着从学生到职业人的进化,也许是从前对工作的憧憬太美好,也许是迷失了自己,突然觉得没了前途,准确的说是不知道应该向哪个方向努力,才算是有真的前途。不再有以前的那样的自信了,自己在大学里学到的东西实在太少,现在处处都需要别人的帮助,但这些却不是最重要的,重要的是我突然发现我现在缺少的并不是不是技术的硬东西,而是软实力不行,我羞于向别人问问题,当我有问题,别人忙的时候,我缺少耐心。当我有问题,我却不知道怎样去问问题,我缺乏语言组织能力。当老大问我最近怎么样的时候,我却以沉默应对,我缺乏沟通能力。我想提高我的技术,却不知道从哪里入手。 有时我会想... 阅读全文

posted @ 2013-08-18 13:16 sunshinewave 阅读(192) 评论(1) 推荐(0) 编辑

2013年3月25日

摘要: 多线程的好处:1.可以节省内存空间。2.进程与进程切换。需要交换整个内存空间。多线程可以节省时间。线程与线程之间的切换只需要一个运行环境的改变。执行效率比较高。。。#include<windows.h>#include<iostream>DWORD API ThreadFun();int main(){HANDLE hThread;hTread=CreateThread(NULL,0,ThreadFun,0,Null);CloseHandle(hThread);cout<<"Main Thread is running !";return 阅读全文

posted @ 2013-03-25 00:01 sunshinewave 阅读(197) 评论(0) 推荐(0) 编辑

2012年10月11日

摘要: C++虚继承可以防止多重继承产生的二义性问题。 虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。class baseclass derived1 : virutal public baseclass derived2 : virtual public baseclass derived3 : public derived1, public derived2以上的代码如果用到了base中的某个成员变量就不会产生二义性。和#progma once在头文件中的作用类似。请看下面的例子:#include &l 阅读全文

posted @ 2012-10-11 00:22 sunshinewave 阅读(983) 评论(0) 推荐(0) 编辑

2012年10月9日

摘要: 1,栈一般最大只能是1-2M;2,C++中将构造函数或析构函数定义为privateC++中将构造函数或析构函数定义为private很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?这意味着什么?当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有的,由于在class外部不允许访问私有成员,所以这将导致编译出错。然而,对于class本 阅读全文

posted @ 2012-10-09 18:36 sunshinewave 阅读(231) 评论(0) 推荐(0) 编辑

2012年10月7日

摘要: 程序员笔试知识点整理0、常考基础必知必会A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的算法;B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别?C. 链表和数组的区别,在什么情况下用链表什么情况下用数组?D. 栈和队列的区别?E. 多态,举例说明;overload和override的区别?F. 字符串有关的函数,比如让你写一个拷贝字符串的函数啊,或者字符串反转啊什么的。strcpy和memcpy?G. 继承、多继承?H. 面向对象有什么好处?I. 说说static的与众不同之处,如果一个变量被声明为static,它会被分配在哪里?在什么时候分配空间等?J 阅读全文

posted @ 2012-10-07 00:02 sunshinewave 阅读(1135) 评论(0) 推荐(0) 编辑

2012年9月23日

摘要: 两天了,不知道一直在忙什么。不想浪费时间继续directX的学习。闲话少说。。。步入正题。。前天把管道渲染基本流程过了一遍,现在一起看看,实际的代码是怎样实现的。#include <d3dx9.h>#define MAX_LOADSTRING 100// 全局变量:HINSTANCE hInst; // 当前实例TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本TCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名LPDIRECT3D9 g_pD3D = NULL;... 阅读全文

posted @ 2012-09-23 23:03 sunshinewave 阅读(953) 评论(0) 推荐(0) 编辑

2012年9月21日

摘要: 今天讲述渲染管道的一些基本概念,希望对初学者能提供一定的帮助;如有错误请大虾指正。。。1,顶点格式 一个场景是由物体或者模型组成,物体可以通过三角形网格进行近似的描述。网格中的三角形是物体的组成部分,通常下列属于都是描述网格中三角形:多边形,图元,网格几何体。我们可以通过指定三角形的三个顶点来描述三角形。 另外在DX中顶点还可以有颜色属性以及法线向量属性;D3D为用户提供了构建顶点格式的灵活性,换句话说就是用户可以设置顶点的组成属性。 创建一个自定义的顶点格式,首先需要创建一个顶点数据结构,用于保存顶点数据。举个例子,下面两个不同的顶点格式,一种顶点格式保存了位置和颜色信息。一种保存了... 阅读全文

posted @ 2012-09-21 00:19 sunshinewave 阅读(3925) 评论(2) 推荐(1) 编辑