sshong发表于2007年11月4日 13:11:00 更新于2008年3月21日 19:20:00
核心原因:C不支持重载,而C++支持!
在c++中,为了支持重载机制,在编译生成的汇编码中,要对函数的名字进行一些处理,加入比如函数的返回类型等等.
而在C中,只是简单的函数名字而已,不会加入其他的信息.
也就是说:C++和C对产生的函数名字的处理是不一样的. 两者生成的目标符号表不一样!
如函数
void foo( int x, int y );
该函数被C编译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“...
sshong发表于2007年11月4日 10:08:00 更新于2008年3月21日 19:22:00
假定有一个父类fruit,其有几个子类分别为orange、apple,传统的情况下,如果要用fruit指针指向其几个子类来实现动态性能,必须如下代码:
fruit* p=new orange();
当子类很多,而且命名复杂时,我们并不确切的知道子类的名称。或者原先的我们只是在fruit类的构造函数中传递一个type,并没有派生出相应的子类而现在由于某种原因需要用到派生子类时 ,我们就可以用到Factory模式了。
其核心思想是封装创建具体子类的实现!
如下图1和图2所示。两个之间的差异是在图2的思路中在factory只是提供创建对象的接口,具体实现创建哪...
sshong发表于2007年6月17日 23:48:00 更新于2008年3月21日 19:22:00
package声明
package name{}
package类似于现实的文件目录系统,最顶层的package是工程所在文件夹,如果类是定义在最顶层的包里面,则无需特别声明包的名称
package{}
package example {}
package example.subpackage {}
通常,包的命名以小写字母开头,是以域名相反的顺序来定义,如sshong.gnway.net通常把所有类都写在net.gnway.sshong包中,而examplecorp.co.uk则把类写在uk.co.examplecor...
sshong发表于2007年5月29日 17:56:00 更新于2007年5月29日 17:56:00
本文介绍了ActionScript 3 相对于 ActionScript 2 有哪些新的特性和改动。并在文章的最后一步步的教大家如何利用 Flex Builder 来编译并运行第一个 AS3 程序。语法方面的增强和改动:
引入了 package(包) 和 namespace(命名空间) 两个概念。其中 package 用来管理类定义,防止命名冲突,而 namespace 则用来控制程序属性方法的访问。
新增内置类型 int (32比特整数),uint(非负32比特整数),用来提速整数运算;
新增 * 类型标识,用来标识类型不确定的变量,通常在运行时变量类型无法确定时使用。...
sshong发表于2007年5月29日 17:47:00 更新于2007年5月29日 17:48:00
一、You should bear in mind the following when applying namespaces:
You can apply only one namespace to each declaration.
There is no way to apply a namespace attribute to more than one definition at a time. In other words, if you want to apply your namespace to ten different functions, you mu...
sshong发表于2007年5月29日 17:32:00 更新于2007年5月29日 17:33:00
一、When a package is created, the default access specifier for all members of that package is internal, which means that, by default, package members are only visible to other members of that package. If you want a class to be available to code outside the package, you must declare that class to b...
sshong发表于2007年5月29日 17:09:00 更新于2007年5月29日 17:09:00
as2种,大家都熟悉的loadvars在as3种被淘汰了,取而代之的是正统的URLLoader.
与urlloader相关的类有一大摞,让我们从流程上来理解下。
首先要与服务器交换数据,必须要发送数据到服务器,然后服务器接收数据,最后服务器返回数据。
一、准备发送数据 利用URLRequest来定义如何连接,链接到哪里,传递些什么数据。
A.首先要知道服务器地址以及访问的页面,这些都通过urlrequest的url属性来定义。
譬如
var url:String="http://sshong.8866.org/chatroom.jsp";
var req:URLRe...
sshong发表于2007年5月29日 16:46:00 更新于2007年5月29日 16:46:00
1.不要有中文路径!实例不要与类名相同!
今天下午调试,因为我有一个元件叫login_win,我把它连接到了一个元件类也较login_win,并且我把该元件拖到主场景中,命名login_win,结果在主文档类老是出错,调了一下午都是这个错误Error #1046: Type was not found or was not a compile-time constant: login_win.
论坛上说flash9不支持中文路径,所以会导致flash无法导入包,报该错,我把这些文件都拷贝到d盘根目录下,还是出错,nnd,急了,结果把主场景里的login_win更名为Login_win...
sshong发表于2007年5月28日 14:22:00 更新于2007年5月28日 14:22:00
as3按键事件同所有其他as3事件一样,都是当某事件发生后,将该事件加入到事件流中,寻找是否有元件添加了对该事件的响应函数,如果有,则触发它。
as3按键事件的定义是在flash.events.keyboardevent,是event的子类,除了继承event的基本属性外,还有一些自身的独特的属性,有两种情况会触发键盘事件,一种是keyup(按下键),一种是keydown(弹起键),(这两个都是keyboardevent类的常静态static const属性),在键盘事件触发后,传递的事件中有一个重要属性--keyCode,标示是按下了哪个键,另外有shiftKey、ctrlkey...
sshong发表于2007年5月28日 14:05:00 更新于2007年5月28日 14:05:00
sharedobject分三种类型:
一、只在客户机端保存的,localsharedobject,扩展名为.sol,保存在本地applicationdata的相应的文件夹中。
二、只在服务器端保存的,remotesharedobject,扩展名为.fso,保存在服务器端application对应的程序文件夹下。
三、既在本地又在服务器保存的,在本地保存在applicationdata的相应的文件夹中,扩展名为.sor,在服务器端保存在application对应的程序文件夹下,扩展名为.fso,且ms本地的比服务器上的小。
四、as3对服务器端的soj(包含既保存在...
共208篇日志 第19/21页
下一页 上一页 尾页 首页