
c++
一见—倾心
需求->文档->源码
展开
-
3D游戏编程入门(十五)索引缓存
如我公告所言,7号我将断网进行复习,我很愿意把编程学习看做在学武功,高手都会选择一段时间内进行闭关修炼的,这样更方便自己修身养性,抛开一些网络上的繁杂事宜,很容易全身心的投入自己的事情中,待得出关后功力又会大幅上升,我很渴望技术的进步,特别在弄到的一堆电子书籍之后,我更需要一些时间来好好消化它们,呵呵,想起以前朋友说的话,人与人之间没有永恒的朋友,只有永恒的利益,而书籍永远是人类最忠诚的朋友。虽然转载 2015-06-24 01:10:29 · 694 阅读 · 0 评论 -
C++中friend的使用(friend function and friend class)
对于一个没有定义public访问权限的类,能够让其他的类操作它的私有成员往往是有用的。例如你写了一段binary tree的代码,Node是节点类,如果能够让连接多个节点的函数不需要调用public方法就能够访问到Node的私有成员的话,一定是很方便的。Friend Classes(友元类)C++中的friend关键字其实做这样的事情:在一个类中指明其他的类(或者)函数能够直接访问该类转载 2015-08-07 02:52:28 · 1331 阅读 · 0 评论 -
Cocos2d-x-3.6 用户交互原理---------如何通过JNI连接Java和C++
cocos2d-xc++JavaJNI 用户交互这里指的就是用户在手机上的点击,滑动以及晃动手机等行为,从而得到相应的反馈。今天学习Cocos2dx,遇到交互问题,所以就写出来和大家分享一下。我这里是以Android连接为例的,因为目前我只会Android相关的开发。好了,不多说,看下面步骤:第一步:在Android中,交互操作的入口在SurfaceVie转载 2015-08-07 03:11:08 · 1360 阅读 · 0 评论 -
error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1800”
_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值:MS VC++ 10.0 _MSC_VER = 1600MS VC++ 9.0 _MSC_VER = 1500MS VC++ 8.0 _MSC_VER = 1400MS VC++ 7.1 _MSC_VER = 1310MS VC++ 7.0 _MSC_VER = 1300MS VC++ 6.0 _转载 2015-08-20 09:37:20 · 4128 阅读 · 0 评论 -
vs2015激活码
microsoft visual studio2015是微软推出的一款集程序设计网页开发于一身的开发工具。microsoft visual studio 2015支持c,c++,c#以及手机应用开发,用它所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Fram原创 2015-08-20 09:55:07 · 18141 阅读 · 0 评论 -
C++语言零基础入门教程:2.2 C/C++头文件大揭秘,""和<>有什么区别
在《C++语言零基础入门教程:2.1 最简单的C++语言控制台程序》,我给出了输出“中秋”两个汉字的代码,那么这节课来给大家解释一下。因为是零基础入门的,虽然看似很简单,简单到不足挂齿的地步,不过对于没学过的人来说,还是值得一讲的。 程序的代码结构是这样的:包含一个头文件,引用标准命名空间,编写main函数,在main函数中输出一大堆字符,字符为空格和2的混合,因为空格是不可见的,字符2转载 2016-01-18 22:04:43 · 792 阅读 · 0 评论 -
C++11学习笔记
1.long long新类型2.列表初始化int t = 0; int t = { 0 }; int t(0); int t{ 0 }; 注意:如果我们使用列表初始化有丢失信息的风险,则编译器报错。long double ld = 3.1415926536; int a{ ld }, b = { ld };//错误 int c(ld), d = ld;//正确,会丢失转载 2016-01-18 22:11:32 · 1266 阅读 · 0 评论 -
已解决的问题----------vs 中文注释导致编译不能通过!!!
亲爱的朋友,也许你在网上下载一些项目运行时,发现到处都是错误,仔细一看发现是中文注释在作怪。我在想是否是文本的格式不对,导致中文注释不能通过编译。我想到了一个方法验证了这个原因!在UIEdit打开文本,然后另存为UTF—8的格式,保存一下,再一次编译就没问题了。如图:原创 2016-04-05 20:54:49 · 7204 阅读 · 2 评论 -
输入法中的全角和半角对编译的影响
今天出现了一个奇怪的现象,不小心把输入法改成全角了,在代码中敲入空格键,然后就报错。后来我查了一下什么是全角和半角:1)全角--指一个字符占用两个标准字符位置。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。 (2)半角--指一字符占用一个标准的字符位置。原创 2016-06-26 12:03:22 · 3055 阅读 · 0 评论 -
Cocos2d-vs避免过长编译的小技巧
我们每一次新建一个工程,都会花很长时间来进行编译。如果是这样的话,我们会浪费多少。尤其是耐不住性子的人,感觉特别麻烦。因此,针对这一情况,我们发现每一次大部分编译都是重复的,也就是重复编译。不光浪费时间,也浪费硬盘空间。所以我试了几遍,Debug和Release的库文件差不多,但一拿来运行,总是不能通过编译。因此可以确定两者之间尽管库文件相似,但是还是有差别的。所以我将他们分别列出来了,如原创 2016-06-07 02:15:59 · 1091 阅读 · 0 评论 -
c++网络编程2:TCP连接概念及编程
一.TCP建立连接的三次握手在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送SYN包(SYN=j)到服务器,并进入SYN_SEND状态,等待服务器确认;【客户端->服务端:SYN(j)】第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包转载 2016-06-15 19:02:19 · 632 阅读 · 0 评论 -
C++ 类之间的互相调用
这几天做C++11的线程池时遇到了一个问题,就是类A想要调用类B的方法,而类B也想调用类A的方法这里为了简化起见,我用更容易理解的观察者模式向大家展开陈述 观察者模式:在对象之间定义一对多的依赖,这样一来,当一个对象改变状态时,依赖它的对象都会收到通知,并自动更新观察者模式中有一个subject和observerobserver向subject注册成转载 2016-06-16 17:50:14 · 1651 阅读 · 0 评论 -
HEAP: Free Heap block xxxxxxxx modified at xxxxxxxx after it was freed
《诸子百家》发布后,发现游戏在有些情况下会崩溃。偶然崩溃。 由于我是负责主框架,网络协议和登录,数据等,所以这个修正bug的任务主要就落在我头上了。 一、bug 1.最头疼的bug HEAP: Free Heap block xxxxxxxx modified at xxxxxxxx after i转载 2016-06-22 23:24:08 · 52356 阅读 · 0 评论 -
std::function与std::bind 函数指针
c++functionbindfunction模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却却比函数指针更加灵活,特别是函数指向类 的非静态成员函数时。std::function可以绑定到全局函数/类静态成员函数(类静态成员函数与全局函数没有区别),如果要绑定到类的非静态成员函数,则需要使用std::bind。[cpp] view转载 2015-08-07 02:50:41 · 510 阅读 · 0 评论 -
std::thread and std::mutex
本篇介绍的是线程!在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上。但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++11中已经拥有了一个更好用的用于线程操作的类std::thread。cocos2dx 3.0的版本默认是在vs2012版本,支持c++11的新特性,使用std::thread来创建线程简直转载 2015-08-07 02:54:48 · 480 阅读 · 0 评论 -
C++ Virtual详解
c++virtualVirtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Deri转载 2015-08-07 02:57:39 · 383 阅读 · 0 评论 -
3D游戏编程入门(十六)索引缓存绘制立方体
T T本想和刚才那个帖在一起的,可是新浪日志限制每帖1万字,呼,再单独的发个立方体代码吧运行后效果图应当如下:头文件就不再给出包含了,其他完整代码如下,另部分关于旋转和视角的东西大家暂时先不用管,我以后会慢慢说明的。// 全局变量:HINSTANCE hInst; // 当前实例TCHAR szTitle[20]; // 标题栏文本T转载 2015-06-24 01:18:24 · 841 阅读 · 0 评论 -
OpenGL读取Obj模型文件
想要顺利读取obj模型文件,先要了解这种文件的格式,OBJ文件格式是非常简单的。这种文件以纯文本的形式存储了模型的顶点、法线和纹理坐标和材质使用信息。OBJ文件的每一行,都有极其相似的格式。在OBJ文件中,每行的格式如下:前缀 参数1 参数2 参数3 ...其中,前缀标识了这一行所存储的信息类型。参数则是具体的数据。OBJ文件常见的的前缀有v 表示本行指定一个顶点。 前缀后跟着转载 2015-06-24 01:32:46 · 1923 阅读 · 2 评论 -
C++常见错误大全
0. XXXX "is not a class or namespace"错误 最诡异的错误,提示意思很明显,说你写的名字既不是一个类也不是一个命名空间,虽然我C++水平不是很高,但再愚笨也不至于连类的格式class MyClass{....};也写不明白吧,报此错误原因显然跟它没关系,那又是怎么回事呢? 答案是:#include "stdafx.h"没放在代码最开头!!!转载 2015-06-27 07:15:20 · 1778 阅读 · 1 评论 -
c++构造函数详解
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。 c++类的构造函数详解 一、 构造函数是干什转载 2015-06-27 07:19:30 · 484 阅读 · 0 评论 -
C++ 重写重载重定义区别
用的时候老是忘记。特此记下。重载overload:是函数名相同,参数列表不同 重载只是在类的内部存在。但是不能靠返回类型来判断。重写override:也叫做覆盖。子类重新定义父类中有相同名称和参数的虚函数。函数特征相同。但是具体实现不同,主要是在继承关系中出现的 。重写需要注意:1 被重写的函数不能是static的。必须是virtual的2 重写函数必须有相转载 2015-06-27 07:17:48 · 593 阅读 · 0 评论 -
.hpp文件和.h文件的区别
hpp,顾名思义等于.h加上.cpp,在boost、Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习。 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的转载 2015-07-09 02:50:53 · 776 阅读 · 0 评论 -
c++读书笔记——多重继承
多重继承时一个类的直接基类多于一个,则该类得到多个基类的属性和行为。定义多重继承的语法类似于单一继承,只是要在冒号后面列出每个基类的名称和继承方式。对于多个基类的初始化,也需要采用成员初始化列表形式完成。 与单一继承类似,在构造多基类的派生类对象时,需要首先调用基类的构造函数,然后执行派生类的构造函数。这里需要注意,对于多个基类构造函数的调用,是以声明继承关系时所列基类的顺序进行的,而不是以原创 2015-07-08 03:52:41 · 514 阅读 · 0 评论 -
HPP
hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再 将cpp加入到project中进行编译。hpp在C++中的含义而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编转载 2015-07-09 02:44:39 · 832 阅读 · 0 评论 -
c++读书笔记——类的定义
(一个字一个字敲键盘的!!!) 1、类定义的语法 类定义以关键字class开始,定义的语法如下:class类名{访问权限控制符://类成员的声明};起来的部分是类定义体(body),其中主要包括访问权限说明符和类成员的声明,常用的访问权限说明符有public 、private和proteced,它们限定了对成员的访问权限。 2、原创 2015-07-05 09:55:03 · 876 阅读 · 0 评论 -
C++读书笔记——静态与动态绑定
所谓绑定,就是函数调用与函数定义相关联的过程。按照发生的时间,绑定有两种:静态和动态。 静态绑定: 在编译期间,系统根据函数调用定位到待执行函数的定义体,即在运行前,已经确定了目标代码的地址。对于面向对象的静态绑定,需要注意:对于类继承层次结构中的共有方法,如果通过对象来调用,那么只能调用该对象所属类的成员函数,而不会根据对象指针所指实际对象的类型来调用该类的成员函数。原创 2015-07-08 03:46:32 · 638 阅读 · 0 评论 -
C#图片存到资源文件,以及调用图片
在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中。方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去。在程序中代码采用相对路径调用。这种方式的优点是,以后更换图标比较方便,直接替换文件即可。代码略。方法二,在一些小程序中,如我们不想程序带有一系列除.exe以外的文件转载 2015-08-24 14:15:07 · 27274 阅读 · 0 评论 -
std::string用法总结
c++stdstring在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便:string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化string类的字符操作:const转载 2015-08-07 03:01:38 · 755 阅读 · 0 评论 -
gcnew与new的区别
C++/CLI中使用gcnew关键字表示在托管堆上分配内存,并且为了与以前的指针区分,用^来替换* ,就语义上来说他们的区别大致如下: 1. gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址. 2. gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放.转载 2017-07-26 19:22:05 · 842 阅读 · 0 评论