摘要: 今天编码的时候,发现了一个错误,就是模板代码在链接的时候找不到方法。情况大概如下:在 "Manager.h" 中class Manager {public: template void SetData(const T& value);};然后在cpp文件中定义SetDatatemplatevoid Manager::SetData(const T& value){}在另外一个main.cpp文件中使用#include "Manager.h"Manager mgr;double n = 0;mgr.SetData(n);这样就会产生一个er 阅读全文
posted @ 2013-08-20 23:02 阿飞同学 阅读(1781) 评论(0) 推荐(0) 编辑
摘要: C++中new操作符如何工作? 阅读全文
posted @ 2012-08-04 14:24 阿飞同学 阅读(460) 评论(0) 推荐(0) 编辑
摘要: Account = {balance = 0}function Account:withdraw(v) if v > self.balance then error"insufficient funds" end self.balance = self.balance - vendfunction Account:deposit(v) self.balance = self.balance + vendfunction Account:new(o) o = o or {} setmetatable(o, self) self.__index = self return 阅读全文
posted @ 2012-08-01 16:40 阿飞同学 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 【1】closure就是一个函数加上该函数所需访问的所有的“非局部的变量”看下面一个例子:function newCounter() i = 0 return function() i = i + 1 return i endendc1 = newCounter()print(c1())print(c1())result:12用newCounter创建了一个函数,函数执行了(i=i+1 return i),调用一次c1,就执行一次该函数体,第一次打印出1。这个就是closure的作用,它保存了“i”这个非局部变量,每次只执行c1(),就使其加1。如果再有语句c2 = newC... 阅读全文
posted @ 2012-08-01 15:08 阿飞同学 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 刚学Lua不久,下面的代码理解了很久,故记录下来,怕忘记了。a = 1local newgt = {}setmetatable(newgt, {__index = _G})setfenv(1, newgt)print(a)print(_G.a)a = 10print(a)print(_G.a)_G.a = 20print(a)print(_G.a)运行结果:1110110201、首先,定义了全局变量a,并初始化为12、创建新环境 local newgt = {},并继承了全局的环境_Gsetmetatable(newgt, {__index = _G})这句语句告诉程序,在找不到变量的时候,到 阅读全文
posted @ 2012-07-30 18:22 阿飞同学 阅读(191) 评论(0) 推荐(0) 编辑
摘要: class Vehicle{public: virtual double Weight() const = 0; virtual void Start() = 0; //【3】 //存储就肯定得有复制,但是我们不知道派生类的类型,我们无法自己进行复制 //一个比较好的方法就是用多态的机制,让派生类自己进行复制,然后通过返回值的形式进行传递 //我们叫虚复制函数 virtual Vehicle* copy() const = 0; // ...};class RoadVehicle: public Vehicle{public: d... 阅读全文
posted @ 2012-07-19 10:31 阿飞同学 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1、通过连接其他合法符号可以创建新的操作符。2、除了函数调用操作符operator()之外,重载操作符时使用默认实参是非法的。3、重载操作符的形参数目(包括成员函数的隐式this指针)与操作符的操作数数目相同,函数调用操作符可以接受任意数目的操作数。4、作为类成员的重载函数,其形参看起来比操作数数目少1.作为成员函数的操作符有一个隐含的this形参,限定为第一个操作数。5、如果不定义,编译器将会合成的操作符有:赋值操作符(=)、取地址操作符(&)、逗号操作符(,)、&&和||。重载之后的&&和||不再具有短路特征。6、选择成员或非成员实现的几点经验原则: 阅读全文
posted @ 2012-07-13 21:43 阿飞同学 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 假设有这么一个场景,是用键盘的方向键去控制一个物体前进的方向,其中有down、up、right和left,大家很容易想到的是事件驱动,大概模型如下:/* Alien screen coordinates */ int alien_x=0, alien_y=0; /* Main game loop */ /* Check for events */ while( SDL_PollEvent( &event ) ){ switch( event.type ){ /* Look for a keypress */ c... 阅读全文
posted @ 2012-07-04 11:12 阿飞同学 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 因为QA那边还没有反馈,设备也存在问题不能调试,所以今天就放下手头上的工作,翻看了云风以前写的一些博文,发现了自己这些年来的对C++中的成员的私有性存在错误的理解,以前认为只要是私有成员变量,除了自己的成员函数,任何其他的函数都不能访问,这里我存在一个误区,以为私有性是对于对象来讲的,看了云风的这篇博文后,我才发现私有性是针对类来讲的。然后我写了程序测试了以下,果真能访问,但是我把private改成protected也还是能访问,并不像云风文中所说的一样...下面是我的测试程序 1 class Object 2 { 3 public: 4 Object():a(0){} 5 ~... 阅读全文
posted @ 2012-06-25 16:22 阿飞同学 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 我们先看一下下面dos代码:@echo offset num=Redtek 2006 bbs.cn-dos.netset a=123245set b=87754321echo.echo a=%a% b=%b% num=%num%set result=%%%%%%%%num:~%%%%b:~%a:~3,1%,1%%%%,4%%%%%%%%echo %result%call set result=%%%%%%%%num:~%%%%b:~%a:~3,1%,1%%%%,4%%%%%%%%echo %result%call call set result=%%%%%%%%num:~%%%%b:~%a:~ 阅读全文
posted @ 2012-02-23 16:16 阿飞同学 阅读(1741) 评论(0) 推荐(1) 编辑