`
peijinlong
  • 浏览: 32065 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

AS3中函数参数默认值为另外一个类常量时,编译不通过的问题

阅读更多
   假如有以下代码:
package  
{
	/**
	 * ...
	 * @author longpeijin
	 */
	public class PanelType
	{
		public static const FLOAT:String = "Float";
		
		public function PanelType() 
		{
			
		}
		
	}

}


还有另外一个类:
package  
{
	import flash.display.DisplayObject;
	/**
	 * ...
	 * @author longpeijin
	 */
	public class PanelManager
	{
		
		public function PanelManager() 
		{
			
		}
		
		public function showPanel(panel:DisplayObject,type:String = PanelType.FLOAT):void {
			
		}
		
	}

}


然后你在文档类中这样调用:
var pm:PanelManager = new PanelManager();
pm.showPanel(new Sprite);


你会发现编译不能通过?但是你发现其中有什么问题么?

关键在于PanelManager类没有继承一个比Object更加高级的子类,如果稍微改一下PanelManager编程如下:
package  
{
	import flash.display.DisplayObject;
	/**
	 * ...
	 * @author longpeijin
	 */
	public class PanelManager extends Dictionary
	{
		
		public function PanelManager() 
		{
			
		}
		
		public function showPanel(panel:DisplayObject,type:String = PanelType.FLOAT):void {
			
		}
		
	}

}


这样编译就没有问题的通过了,至于问题在于什么,这个我也要请教大家了。
分享到:
评论

相关推荐

    Swift视频教程:函数篇 参数默认值

    3. 当函数被调用时,如果省略了某个参数,那么从该参数开始的所有后续参数都必须使用默认值,不能单独为它们提供值。 理解并熟练运用参数默认值可以提升代码的可读性和可维护性,减少重复代码,并且使函数更加灵活...

    PHP程序设计-3期(KC016) 2.10.2 带参函数常见问题.docx

    然而,需要注意的是,函数参数的默认值必须是一个常量或常量表达式,而不能是变量、类成员或函数调用的结果。这是因为默认值在函数定义时就已经确定,而在运行时变量的值可能尚未被赋值或者其值会变化,这会导致编译...

    C++程序设计:第4章 函数与预编译预处理.pptx

    在函数定义中,可以为某些参数提供默认值,使得在调用函数时可以不提供这些参数的值。这在参数数量可能变化或某些参数有默认行为的情况下很有用。 4.5 函数重载 函数重载是指在同一作用域内可以有多个同名但参数...

    C++函数详解与应用实例ppt课件.ppt

    * 有参函数:有参函数的定义格式为《数据类型》函数名 (参数类型1 形式参数1《,参数类型2 形式参数2,…》{函数体},有参函数的参数表中列出所有形式参数的类型和参数名称。 三、函数的参数传递 * 形式参数简称...

    API函数的中文帮助文件

    `WINAPI`是一个宏定义,其默认值通常为`__stdcall`,意味着被调用的函数负责清理参数栈。这种调用约定在Windows API中广泛使用,确保函数调用过程中的参数传递和返回值处理规范统一。 API函数的中文帮助文件通常...

    Swift心得笔记之函数

    Swift中的函数是编程中最基本的构建块之一,它们允许我们将一系列相关的操作封装成一个独立的实体,以便在需要时重复使用。在Swift中,函数不仅可以接收固定数量的参数,还能处理可变参数、默认参数值以及没有外部...

    C++习题 (4).pdf

    这些知识点涵盖了C++中的面向对象特性、函数重载、内联函数、引用、参数默认值、函数原型、常数据成员、成员函数、静态数据成员、类模板、虚函数、友元、成员访问权限、构造函数与析构函数的使用,以及多重继承中的...

    比较好C语言习题练习

    5. **函数参数的默认值**:在C语言中,函数参数没有默认值的概念,但在C++中可以通过在定义函数时为某些参数提供默认值。 6. **重载函数**:这是C++中的概念,不是C语言的一部分。重载函数允许在同一作用域内定义多...

    c语言程序设计自测练习二.doc

    5. 参数的默认值:在C++中,可以在定义函数时为参数设置默认值,且通常是设置右边的参数。但不是必须为所有参数设置默认值,因此B选项是正确的。 6. 重载函数:重载函数的目的是为了提高代码的可读性和使用便利性,...

    c++复习题 (3).docx

    在C++中,构造函数可以重载,即同一个类可以有多个不同的构造函数,每个构造函数可以接受不同数量或类型的参数。 - 析构函数在对象生命周期结束时自动调用,负责清理对象资源。析构函数也没有返回类型,其名称为...

    C++ 函数与预处理

    函数重载允许在同一作用域内定义多个同名函数,但参数列表不同,以便为相同的操作提供不同的接口。 4.7 **函数模板**: 函数模板允许创建泛型函数,可以处理不同类型的数据,通过模板参数自动推导类型。 4.8 **有...

    浙大远程教育面向对象程序设计离线作业参考答案.pdf

    默认参数值使得函数调用时可以省略某些参数,但设置默认参数值有一些规则,如在指定了默认值的参数右边不能出现无默认值的参数,且设置默认参数值只能在函数的定义处完成。B选项正确地指出在指定了默认值的参数右边...

    c++语言程序设计自测练习(二).pdf

    5. 参数默认值:C++允许在定义函数时为参数设置默认值,但这只能从右到左设置,并且不是所有参数都需要设置默认值。 6. 重载函数的目的:重载函数是为了提供使用方便和提高代码的可读性,使得相同的函数名称可以...

    C++默认参数与函数重载及注意事项

    例如,如果有两个或更多具有不同参数数量和默认值的重载函数,调用函数时可能不知道应选择哪个版本。如下所示: ```cpp func(int); // 重载函数1 func(int, int =4); // 重载函数2 ``` 调用`func(2)`时,编译器无法...

    浙江省_C++统考样卷[1].pdf

    13. **析构函数特性**:与前面的题目相同,析构函数的名称与类名无关,每个类只有一个析构函数,且不能有参数。 14. **成员函数特征**:成员函数可以是内联、重载、设置参数默认值,也可以是静态的,但并不是所有...

    ch06 过程封装--函数.ppt

    当函数的某些参数可能不需提供时,可以设置默认值,例如: ```cpp int getSum(int a = 0, int b = 0) { return a + b; } ``` 内联函数是一种优化手段,用于减少函数调用带来的开销,通过在源代码中展开函数体。...

    c++期末考试真题(1).pdf

    预设参数允许函数在调用时不必为所有参数提供值,如果缺少参数,最后一个预设参数会被使用。静态数据成员适用于那些需要在所有类对象之间共享的数据。内联函数可以提高代码执行效率,因为它们在编译时被展开。 `#...

Global site tag (gtag.js) - Google Analytics