
c与c++
wkyb608
这个作者很懒,什么都没留下…
展开
-
基于stage3D的例子编辑器
为Starling提供的粒子编辑器,参数很详细,很贴心。编辑后可以输出粒子图和pex文件:http://t.cn/aDa2nW 作者关于此编辑器的介绍:http://t.cn/aDa2Kk原创 2011-10-13 11:58:33 · 750 阅读 · 0 评论 -
C++11 理解 之 多态函数对象包装器
针对函数对象的多态包装器(又称多态函数对象包装器)在语义和语法上和函数指针相似,但不像函数指针那么狭隘。只要能被调用,且其参数能与包装器兼容的都能以多态函数对象包装器称之(函数指针,成员函数指针或仿函数)。通过以下例子,我们可以了解多态函数对象包装器的特性:std::functionint (int, int)> func; // 利用樣板類 'function'转载 2014-04-16 16:27:46 · 1210 阅读 · 0 评论 -
Xcode5 “No matching provisioning profiles found issue” (but good at xcode4)
Everything is OK on Xcode4.6. When I try to use Xcode5 dp6 to run app on devices. I got an error of "No matching provisioning profiles found issue". How can I resolve this issue?An转载 2013-11-12 15:31:21 · 986 阅读 · 0 评论 -
Prefix.pch文件
当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以 -Prefix.pch结尾文件的文件,pch全称是“precompiled header”,也就是预编译头文件,该文件里存放的工程中一些不常被修改的代码,比如常用的框架头文件,这样做的目的提高编译器编译速度。我们知道当我们修改一个工程中某个文件代码时候,编译器并不是重新编译所有所有文件,而是编译改动过文件的,假如pc转载 2013-11-25 13:26:48 · 707 阅读 · 0 评论 -
static_cast、dynamic_cast、reinterpret_cast、和const_cast
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和 const_cast。下面对它们一一进行介绍。 I原创 2013-11-06 18:35:15 · 671 阅读 · 0 评论 -
Cocos2d-x Bitmap Font generator位图字体工具
前面都用到了".fnt"文件,但是没讲述".fnt"是怎么产生的怎么用的...今天就将这个非常有用的位图处理工具,来回答上面的问题...1、下载地址:http://www.angelcode.com/products/bmfont/2、创建一个txt文件,然后输入你用到的文字这是我输入的内容(注意:保存的是有移动要用utf-8,可能这软件不支持别编码)转载 2013-11-18 13:55:41 · 840 阅读 · 0 评论 -
C++中,两个头文件互相引用怎么办?
定义了两个头文件//a.h#include"b.h"class a{ … b *b1;};//b.h#include "a.h"class b{ … a *a1;};这样子是编译不了解决方案:不需要这么包含,除非必要如果你只是想在另外一个类中定义一个类的成员变量,只要在头文件中加入 class 类名;然后要在.cpp文件中包含这个头原创 2013-11-15 10:25:16 · 5215 阅读 · 0 评论 -
vtbl(虚函数表)与vptr(虚函数表指针)
类的虚函数表是一块连续的内存,每个内存单元中记录一个JMP指令的地址 注意的是,编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中的一行。如果类中有N个虚函数,那么其虚函数表将有N*4字节的大小。 虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,转载 2013-10-28 12:31:01 · 639 阅读 · 0 评论 -
新建的文件没有编译到工程中
在xcode中有时候新建的类无法编译到工程中,可以这样解决: 在xcode的target membership设置里面,勾选工程即可原创 2013-09-24 10:36:24 · 694 阅读 · 0 评论 -
cocos2d-x 运动中的加速度效果
在实现运动中,我们常常需要实现一些加速度或者减速度的效果,cocos2d-x引擎为我们提供了相应的实现接口,这样我们就不用再用原来的公式计算方法来实现加减速度的效果Ease系列的方法改变了运动的速度,但是并没有改变总体时间,如果整个的action持续5秒钟,那么整个的时间仍然会持续5秒钟。这些action可以被分成3类:In actions: action开始的时候加速原创 2014-04-21 15:01:01 · 538 阅读 · 0 评论 -
C++11新特性学习笔记
最近学习了C++11的新特性,将学习内容整理下来以巩固记忆,C++11的新特性,可以分为两部分,第一部分是C++11核心语言的特性,第二部分是STL标准库的新特性。学习C++11主要参考了wiki上的一篇文章,在介绍右值引用的时候还参考了MSDN上一篇文章,由于这两篇文章写的时间比较早,和实际有些出入,我的开发环境是win8,vs2012,很多C++11特性还没支持,所以只整理了vs2012已经支原创 2014-04-10 16:57:13 · 512 阅读 · 0 评论 -
std::list主要函数
list是一个双向链表,因此它的函数也都要从链表的角度来进行理解。 迭代器返回迭代器,和listbegin()end()返回反向迭代器,和listrbegin()rend() 返回第一个、最后一个元素front()back() 插入数据向链表头、尾插入元素push_fro原创 2015-04-01 11:29:42 · 558 阅读 · 0 评论 -
C++如何阻止一个类被实例化
(1)将类定义为抽象基类或者将构造函数声明为private; (2)不允许类外部创建类对象,只能在类内部创建对象原创 2015-03-30 10:54:37 · 3349 阅读 · 0 评论 -
C++编译速度优化尝试
不管VC还是GCC也好,.cpp文件多了,模板多了,那编译速度也就慢了,有时会长达10分钟以上,甚至更长。因为主要是在linux下开发,所以VC就不尝试了。有一天,突然想到,如果整个工程,只编译一个文件,是不是可行?然后,就手动做了一个尝试。然后如下做:首先写一个.cxx文件,用#include把这些.cpp全部包含进来再修改makefile,去除.cpp,.CPP的目标生成,原创 2015-03-30 11:07:46 · 2078 阅读 · 0 评论 -
Effective STL 条款21: 关联容器的strict weak order(让比较函数对相等的值返回false)
条款21: 永远让比较函数对相等的值返回false让我向你展示一些比较酷的东西。建立一个set,比较类型用less_equal,然后插入一个10:set > s; // s以“<=”排序s.insert(10); // 插入10现在尝试再插入一次10:s.insert(10);对于这个insert的调用,set必须先要判断出10是否已经位于其中了转载 2015-03-27 10:16:15 · 555 阅读 · 0 评论 -
cocos2d-x 3.0 事件分发机制
原文 http://www.firedragonpzy.com.cn/index.php/archives/4332作者 firedragonpzy12 四月, 2014暂无评论欢迎热爱编程的朋友们参与到cocos2d-x编程中,为了给大家提供良好的交流环境,网站以开启QQ群 Software MyZone:66202765(群号,欢迎加入,若满,请加1群) Soft转载 2014-06-16 22:46:37 · 670 阅读 · 0 评论 -
如何将包含数字的NSString字符串转换为整数
实现方法NSString *string = …;int value = [string intValue]; 还可以通过floatValue或者doubleValue进行转换。原创 2014-05-27 20:09:02 · 1065 阅读 · 0 评论 -
关于C++中的虚拟继承的一些总结
1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual A;class B2:p原创 2014-04-10 16:15:20 · 470 阅读 · 0 评论 -
void及void指针含义的深刻解析
void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指针,转载 2014-04-10 17:46:27 · 633 阅读 · 0 评论 -
object of abstract class type "我的类" is not allowed 解决方案
想把派生类做成单例,public: static 我的类* getInstance() { if( _uniqueInstance == 0 ) { _uniqueInstance = new 我的类(); //这里报错} return _uniqueInstance; } 报错为:object of abstract class原创 2013-09-29 13:56:44 · 929 阅读 · 0 评论 -
C++中连接符#/##的作用
宏定义中的井号1)# 只在有参数的定义时用到,为把参数产开并转化成字符串即用""引起来。里面的空格分割全部改为一个,并且会自动添加转义字符'\'2)##可以用于有无参数都行。它作用就是把##前后连个东西连起来形成新的标示符。3)#@和#类似,只不过是用''引起来。考虑下面的宏#define stringer( x ) printf( #x "\n" )转载 2013-08-10 20:32:37 · 859 阅读 · 0 评论 -
C++ typedef用法小结
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针转载 2013-07-25 15:35:02 · 526 阅读 · 0 评论 -
Windows数据类型
为什么说是常见数据类型而不是全部呢?因为第一,Windows数据类型太多了,比如说Windows中有很多对象,每一个对象就对应一个句柄,另外还有指针等等。第二,这是没必要的,掌握数据类型命名的一些规律看到一个新的数据类型就能猜出它所表示的意思,列了太多大家看了反而全都记不住,如果大家一定想知道可以查看SDK文档。第三,很多数据类型我也没见过或者忘记了。常见数据类型如下:WORD:1转载 2013-07-24 11:11:04 · 561 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而转载 2013-07-29 17:03:14 · 550 阅读 · 0 评论 -
用C++开发应用于OSX和Windows上的AIR 本机拓展
在AIR 3.0里面,Adobe新增了一个叫做本机拓展的功能。这个功能允许你在任何AIR支持的平台上(iOS,Android,Windows,OSX等等)直接拓展AIR运行时的能力。在我给NitroLM的许可和安全项目担任顾问的时候,我获得了一个机会去深入钻研到底怎么用C++来开发出一个跨平台的本机拓展。我在Windows上使用Microsoft Visual C++ E转载 2011-12-19 14:07:14 · 876 阅读 · 0 评论 -
讲解利用Alchemy将c/c++转化成swf在flashPlayer11中利用GPU加速运行
http://tv.adobe.com/watch/max-2011-develop/leveraging-adobe-alchemy-to-optimize-games-and-applications/原创 2011-10-14 11:40:12 · 878 阅读 · 0 评论 -
(虚幻3游戏引擎)Unreal3的Flash移植演讲代码示例!
MAX大会放出了一个对网页游戏开发者来说可以算是天大的好消息:采用新近发布的Flash Player 11,Unreal Engine 3(《虚幻》第三代引擎)的华丽效果在浏览器中也可以展现了。实际上,这一消息在新的Flash Player说明文档里面就能初见端倪,新3D转载 2011-10-14 11:32:48 · 1422 阅读 · 0 评论 -
关于Flash Player 11(Molehill)的3D引擎、例子、学习资料
Adobe 今日发布了Flash Player 11 incubator(版本号11.0.0.58),代号Molehill。将3D运算交给GPU,实现Flash Web 3D。以下是我收集的一些关于新的Flash Player 11的一些资料,记录于此:转载 2011-10-14 11:34:13 · 898 阅读 · 0 评论 -
[Adobe MAX 2011录像]使用Alchemy优化发Flash游戏和应用程序
leveraging adobe alchemy to optimize games and applications使用Alchemy优化发Flash游戏和应用程序、感兴趣的可看看。观看地址(速度比较慢):http://tv.adobe.com/watch/ma原创 2011-10-14 11:23:19 · 754 阅读 · 0 评论 -
关于C++ const 的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码转载 2013-07-25 15:40:49 · 475 阅读 · 0 评论 -
虚函数的作用?用处?何处体现多态?
虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。 下面是对C++的虚函数这玩意儿的理解。 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始) 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;转载 2013-07-29 17:24:54 · 494 阅读 · 0 评论 -
c++中如何把int转化成char
// 在 C++ 里把其它类型转换成字符串时最好是用纯 C++ 的机制: stringstream 类。// ( http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.1)#include #include using namespace std;void main( ) {原创 2013-08-10 20:14:15 · 1781 阅读 · 0 评论 -
cocos2d-x锚点问题
今天在精灵对其的时候遇到一个问题,就是一直不是想要达到的效果,但是设置的坐标是没有问题的,后来研究了下,是因为锚点的问题,cocos2d-x中默认的锚点是(0.5 , 0.5),这时候只需要把锚点设置为(0 , 0)就好了,函数名称为anchorPoint原创 2013-08-22 14:34:30 · 751 阅读 · 0 评论 -
C++11 FAQ中文版:std::function 和 std::bind
std::function 和 std::bind标准库函数bind()和function()定义于头文件中(该头文件还包括许多其他函数对象),用于处理函数及函数参数。bind()接受一个函数(或者函数对象,或者任何你可以通过”(…)”符号调用的事物),生成一个其有某一个或多个函数参数被“绑定”或重新组织的函数对象。(译注:顾名思义,bind()函数的意义就像它的函数名一样,是用来绑定函数转载 2013-08-22 10:51:21 · 611 阅读 · 0 评论 -
cocos2d anchor point 锚点解析
anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的。而在cocos2d中决定一个 图片的位置是由两个维度 一个是 position 另外一个是anchor point。只要我们搞清楚他们的关系,自然就迎刃而解。默认情况下,anchor point在图片的中心位置(0.5, 0.5),取值在0到1之间转载 2013-08-22 14:35:15 · 859 阅读 · 0 评论 -
使用TinyXml 解析XML文件
在做开发的时候,经常会使用XML的情况,在使用XML的时候,很多情况下会解析XML,那么我们来看一下在cocos2d-x中如何使用TinnyXML来解析XML文件获取到我们需要的数据!废话不多说,先看看例子XML的格式和内容:[html] view plaincopyxml version="1.0" encoding="转载 2013-08-19 15:29:34 · 767 阅读 · 0 评论 -
STL中的常用的vector,map,set,Sort用法
C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库。容器往往包含同一类型的数据。STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。.一. vector1.声明:一个vector类似于一个动态的一维数组。vector a; //声明一个元素为int类型的vector avectot a;转载 2013-08-06 21:29:05 · 639 阅读 · 0 评论 -
xcode 4 制作静态库图文详解
我这个文档的静态库的开发是基于Xcode4.2和iOS SDK5.0编写的。Xcode4跟之前的Xcode3还是有不少的差别的最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Framework。在Xcode上没有找到允许编译,如同Android上的*.so和Win32上的dll这样的说法。不过Framework这样的框架,估计也是类似动态库转载 2013-08-19 13:22:21 · 620 阅读 · 0 评论 -
C++中指针和引用的区别
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数转载 2013-08-05 18:40:40 · 566 阅读 · 0 评论 -
void及void指针含义的深刻解析
void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指针,转载 2015-04-17 18:48:25 · 456 阅读 · 0 评论