loujiayu

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

2014年6月11日

摘要: 互斥锁的一个明显缺点是它只有两种状态:锁定和非锁定.而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法解决了互斥锁的不足,它常此互斥锁一起使用.使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化.一旦其他的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程.这些线程将重新锁定互斥锁并重新测试条件是否满足. 阅读全文
posted @ 2014-06-11 16:09 Stinky tofu 阅读(543) 评论(0) 推荐(0) 编辑

2014年4月24日

摘要: 如果class D以private形式继承class B,用意是为了采用class B内已经备妥的某些特性,不是因为B对象和D对象存在任何观念上的关系。private继承纯粹只是一种实现技术(这就是为什么继承自private base class的每样东西在你的class内都是private:因为他们都是实现细节而已)。private继承意味着只有实现部分被继承,接口部分应略去。如果D以private形式继承B,意思是D对象根据B对象实现而得。private继承在软件“设计”层面上没有意义,其意义只及于软件实现层面。 阅读全文
posted @ 2014-04-24 21:55 Stinky tofu 阅读(210) 评论(0) 推荐(0) 编辑

2014年4月1日

摘要: 假如现在你正在写一个视频游戏软件,游戏里面有各种游戏任务角色,人一多了嘛,就容易出现各个方面的利益冲突,而游戏设计者让他们解决冲突的直接方法就是--战斗,于是游戏中各种人物相互之间砍杀的画面就经常出现,这样就出现了由于受伤或者其它因素导致了健康系数的下降,这个时候作为游戏设计者的你,显然在这里要提供一个函数来计算各种人物当前的健康系数。这个难不倒你,由于各中人物的角色不同,身体素质不同等决定了它们的健康系数也不同,用virtual函数来计算看来是很合理的想法。 阅读全文
posted @ 2014-04-01 22:06 Stinky tofu 阅读(288) 评论(0) 推荐(0) 编辑

2014年3月27日

摘要: 支持“编译依存最小化”的一般构想是:相依于声明式,不要相依于定义式。 程序库头文件应该以“安全且仅有声明式”(full and declaration-only forms)的形式存在。这种做法不论是否涉及templates都适用。 阅读全文
posted @ 2014-03-27 22:27 Stinky tofu 阅读(325) 评论(0) 推荐(0) 编辑

2014年3月25日

摘要: c++接口设计准则:让接口容易被正确使用,不容易被误用。 阅读全文
posted @ 2014-03-25 22:26 Stinky tofu 阅读(394) 评论(0) 推荐(0) 编辑

摘要: c++接口设计准则:让接口容易被正确使用,不容易被误用。 阅读全文
posted @ 2014-03-25 00:06 Stinky tofu 阅读(321) 评论(0) 推荐(0) 编辑

2014年3月15日

摘要: 所谓资源就是一旦使用就必须归还给系统,c++中最常用的资源就是动态分配,在C++总,常用的资源包括动态分配内存、文件描述符、互斥锁、UI中的字型和笔刷、数据库连接,网络socket等。接下来本文介绍几种管理资源的方式,以解决资源泄露或回收问题。 阅读全文
posted @ 2014-03-15 22:50 Stinky tofu 阅读(159) 评论(0) 推荐(0) 编辑

2014年3月13日

摘要: operator=操作符缺省情况下返回引用——TYPE& TYPE::operator=(const TYPE&),原因很简单,operator=返回引用的理由是使你能在一个语句中连接多个赋值。 阅读全文
posted @ 2014-03-13 19:57 Stinky tofu 阅读(214) 评论(0) 推荐(0) 编辑

2014年3月11日

摘要: 试想,如果对象出了异常,现在异常处理模块为了维护系统对象数据的一致性,避免资源泄漏,有责任释放这个对象的资源,调用对象的析构函数,可现在假如析构过程又再出现异常,那么请问由谁来保证这个对象的资源释放呢?而且这新出现的异常又由谁来处理呢?不要忘记前面的一个异常目前都还没有处理结束,因此这就陷入了一个矛盾之中,或者说无限的递归嵌套之中。 阅读全文
posted @ 2014-03-11 23:58 Stinky tofu 阅读(334) 评论(0) 推荐(0) 编辑

2014年3月10日

摘要: c++是一个十分全面的语言,有着众多特性,但在运用这些特性前,必须先习惯c++的办事方式。 阅读全文
posted @ 2014-03-10 22:18 Stinky tofu 阅读(251) 评论(0) 推荐(0) 编辑