C++
文章平均质量分 78
阳光在冬季
坚持,铁血,奋斗!
展开
-
成员函数指针与高性能的C++委托
引子标准C++中没有真正的面向对象的函数指针。这一点对C++来说是不幸的,因为面向对象的指针(也叫做“闭包(closure)”或“委托(delegate)”)在一些语言中已经证明了它宝贵的价值。在Delphi (Object Pascal)中,面向对象的函数指针是Borland可视化组建库(VCL,Visual Component Library)的基础。而在目前,C#使“委托”的概念日趋流行转载 2012-05-10 04:08:12 · 1137 阅读 · 0 评论 -
C++临时对象
C++真正所谓的临时对象是不可见的——不会在你的源代码中出现。只要你产生一个non-heap object而没有为它命名,便诞生了一个临时对象。此等匿名对象通常发生于两种情况: 一是当隐式类型转换(implicit type conversions)被施行起来以求函数调用能够成功; 二是当函数返回对象的时候; 其实还有一种情况就是当你建立一个non-heap objec原创 2015-06-04 09:48:57 · 1046 阅读 · 0 评论 -
C++中模棱两可的错误
description: 最近看了好多C++的书籍,头都大了,感触比较深的是很多东西还是吃不透,自己在面向对象这块的积累还不够深,读起来比较吃力。后面准备多动手,每天从一些小的细节着手,慢慢修真自己一些不良的编程习惯。最近看了好多C++的书籍,头都大了,感触比较深的是很多东西还是吃不透,自己在面向对象这块的积累还不够深,读起来比较吃力。后面准备多动手,每天从一些小的细节着手,慢慢修真自己一些不良的编原创 2015-05-05 09:58:55 · 5530 阅读 · 0 评论 -
C++内存分配
C++内存管理: 变量和对象在内存中的分配都是编译器在编译程序时安排好的,但同样带来了不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。动态内存分配解决了这个问题。C/C++定义了4个内存区间:代码区,全局数据区,栈区,堆区。定义变量是在编译程序的时候就进行的静态存储分配,所有的动态分配基本都是在堆区进行的。不过是不能说的这么绝对的,与编译器和库都是有关联的。函数的参数未必通过堆栈进行原创 2015-05-04 09:53:49 · 1015 阅读 · 0 评论 -
C++对象计数
对象计数是C++中一种常见的技术,在-x引擎中也封装了很多对象计数的方法,这里是查阅了相关资料后对常见的对象计数方法进行总结。一个比较简单的单类的计数就是:class Sprite{public: Sprite() { m_count++; }; ~Sprite() { m_count--; }; int getCount() { return m_count; }原创 2015-06-02 09:45:30 · 3599 阅读 · 0 评论 -
读书笔记_Effective C++_习惯C++
这是一本非常经典C++书籍,也是我在工作中发现自己C++上还有很多薄弱点的时候经常拿来充电的。这本书内容很多,讲了很多如何高效地使用C++的方法,有些地方自己也没能啃透,读过一遍后很多知识点容易忘记,这次是一条一条地进行温习,之所以会分享出来是觉得对于程序员来说,好记性不如烂笔头,自己多动手往往在真正写程序的时候能够像条件反射一样写出好的代码。慢工出细活,对待技术要有谨慎和敬畏之心。这本书推荐喜欢C原创 2015-05-04 09:51:16 · 2988 阅读 · 3 评论 -
读书笔记_Effective C++_构造,析构,赋值
条款五class Empty { };这样的一个类,当C++处理过后,编译器会为它声明一个copy构造函数、一个copy assignment操作符、一个析构函数和一个default构造函数,所有这些函数都是public且inline。class Empty {public: Empty() { ... } Empty(const Empty& rhs) { ... }原创 2015-04-28 10:09:56 · 1074 阅读 · 3 评论 -
Crash Error Debugging
这些天在根据游戏后台的崩溃信息对有游戏进行调试,刚开始调试的时候方向还不是很明确,多调试几次后也摸索出来了一些规律,这里简单地对网上的一些资料做个总结,后面也会持续更新。 SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。一、SIGSEGVOfficial Description:SIGSEGV --- Segment Fault.原创 2013-10-09 20:34:38 · 4039 阅读 · 0 评论 -
C/C++数据对齐
Data Alignment 关于数据对齐问题,现在多多少少有了一些接触,简单地说下自己的看法。1、对齐的背景 大端和小端的问题有必要在这里介绍一下,计算机里面每个地址单元对应着一个字节,一个字节为8bit,对于位数大于8位的处理器来说,寄存器的宽度是大于一个字节的,例如16bit的short型变量x,在内存中的地址是0x0010,x的值为0x1122,0x11为高字节,0x2原创 2013-10-09 20:15:20 · 2891 阅读 · 0 评论 -
C++内存分配
自己在处理C++内存分配上的一点心得,如果有错误,欢迎大家指出。 变量和对象在内存中的分配都是编译器在编译程序时安排好的,但同样带来了不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。动态内存分配解决了这个问题。 C/C++定义了4个内存区间:代码区,全局数据区,栈区,堆区。定义变量是在编译程序的时候就进行的静态存储分配。所有的动态分配都是在堆区进行的。原创 2012-11-01 02:09:57 · 4481 阅读 · 2 评论 -
读书笔记_Effective C++_资源管理
这个章节主要讲的是资源管理相关的知识,C++程序中最常使用的资源就是动态分配内存,但内存只是必须管理的众多资源之一,其他常见的资源还有文件描述器、互斥锁、图形界面的字型和笔刷、数据库连接、以及网络sockets。无论是哪一种资源,重要的是,当你不再使用它时,必须将它还给系统。条款十三Investment* createInvestment(); //返回指针,指向Investment继承体系原创 2015-05-05 09:57:43 · 913 阅读 · 0 评论