孔雀开发小屋

专注并致力于手机客户端开发
<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

  • 随笔 - 103
  • 文章 - 0
  • 评论 - 251
  • 引用 - 0

常用链接

留言簿(38)

随笔分类

随笔档案

关注的博客

朋友的博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

Google C++风格指南笔记(四): 注释

     摘要:
注释的本质是帮助别人和帮助自己更好的理解代码,不是炫耀英文或中文水平。

错误的语法,错误的拼写给他人带来困惑与不快,宁愿不写,不可乱写。  阅读全文

posted @ 2011-01-25 18:29 孔雀 阅读(2260) | 评论 (2)编辑 收藏
递归与迭代

     摘要: 迭代的侧重点在于如何向结果靠近;递归的侧重点在于如何分解到原点。  阅读全文

posted @ 2011-01-18 19:06 孔雀 阅读(1870) | 评论 (0)编辑 收藏
Linux平台延时之sleep、usleep、nanosleep、select比较

     摘要: Linux平台延时之sleep、usleep、nanosleep、select比较  阅读全文

posted @ 2011-01-18 17:12 孔雀 阅读(31057) | 评论 (3)编辑 收藏
Ubuntu下pdf乱码和rar解压后无效文件编码解决方案

     摘要: Ubuntu下pdf乱码和无效文件编码解决方案  阅读全文

posted @ 2011-01-13 14:30 孔雀 阅读(2164) | 评论 (0)编辑 收藏
Cmake入门

     摘要: CMake是一个跨平台的编译构建系统,本文是Cmake入门实例。  阅读全文

posted @ 2011-01-12 15:20 孔雀 阅读(3016) | 评论 (1)编辑 收藏
Google C++ 风格指南笔记(三):命名约定


1.一致性原则
    无论是采用驼峰命名法或者匈牙利命名法都可以,但是在项目中一定保持一致的风格,一致带来的好处不言而喻。

2.不要轻易使用缩写
    除非该缩写在其他地方使用非常普遍,否则不要创造缩写。

3.枚举和常量命名加前缀”k”

posted @ 2011-01-06 19:41 孔雀 阅读(2268) | 评论 (1)编辑 收藏
C++的PImpl技巧及作用

PImpl(private implementation) 其主要作用是解开类的使用接口和实现的耦合。

一个很简单的实现如下:
头文件中:

 1 class CSample
 2 {
 3 private:
 4     class CImpl;
 5     shared_ptr<CImpl> mp;
 6 
 7 public:
 8     CSample();
 9 
10     void print();
11 };

实现文件中:
 1 class CSample::CImpl
 2 {
 3 public:
 4     void doPrint()
 5     {
 6         cout << "impl print" << endl;
 7     }
 8 };
 9 
10 CSample::CSample() : mp(new CImpl)
11 {}
12 
13 void CSample::print() { mp->doPrint(); }

类CSample仅向外界暴露了最小的接口,真正的实现由其内部类CImpl来完成。这样无论CImpl如何修改,外界对此一无所知,从而保持接口的不变性。这种方式的另外一个好处是减少了头文件之间的依赖关系。

上面的代码里,我使用了boost的shared_ptr来管理指针,简化代码。

关于PImpl的更多资料和信息可以参考如下链接:
1. PImp的原理
2. PImpl your C++ code
3. the C++ PImpl

posted @ 2010-12-31 01:21 孔雀 阅读(3034) | 评论 (1)编辑 收藏
Linux上运行Milkshape

环境:Ubuntu 10.04 + MilkShape 1.8.4 + Wine 1.2

方法:

     1)在dll-files.com上下载msvcirt.dll, 注意是msvcirt.dll而不是msvcrt.dll.

     2)在dlldump.com上下载mfc42.dll

     3) 将上述两个dll拷贝到system32目录下和Milkshape的安装目录下(ms3d.exe所在的目录)

     4)使用wine运行之


posted @ 2010-12-22 17:00 孔雀 阅读(1652) | 评论 (0)编辑 收藏
C++的一个疑惑

各位请看下面的代码

 1 struct A {};
 2 
 3 struct B
 4 {
 5 public:
 6     B(){}
 7     B(A& a){}
 8 };
 9 
10 struct B1 : public B
11 {
12 public:
13     B1(const B& b) : B(b)
14     {}
15 };
16 
17 int main()
18 {
19     A a;
20     B1 b1(a);
21 
22     return 0;
23 }

上面的代码可以编译通过(gcc和vs2005下均测试通过),但是如果我将第13行的const修饰符去掉,编译就不能通过,报错说没有匹配的函数,请问各位高手这是为什么?望指教。

posted @ 2010-12-20 21:15 孔雀 阅读(2573) | 评论 (12)编辑 收藏
call to OpenGL ES API with no current context 错误及解决方案

    错误: call to OpenGL ES API with no current context

    可能的原因:OGL ES所在的线程被阻塞或者被挂起,导致渲染设备上下文丢失。

    解决方案:将可能导致渲染线程被阻塞或被挂起的代码移动到别处。比如在渲染循环之前执行或之后执行。

posted @ 2010-12-14 21:56 孔雀 阅读(20348) | 评论 (10)编辑 收藏
仅列出标题
共11页: First 2 3 4 5 6 7 8 9 10 Last