问题标签 [derived-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 动态类派生 - 访问者模式
我想以这种方式创建访问者模式
等等
然后我想创建一个工厂
我可以通过以下方式调用它
使用这种方法,我不必为所有实现 Visitor 接口 accept() 方法的 bean 创建 comman 抽象类。
此解决方案也可用于我们希望根据每个类层次结构的服务工厂具有特定方法的共同行为的情况。
有什么方法可以用标准 jdk 做到这一点,或者我可能需要使用像 cglib 这样的外部工具,或者我所说的可能是垃圾,我们可以通过其他方式实现这个目标。
高级发送
python - 在派生类上调用 __coerce__() 方法会导致错误
我的试验如下所示,但没有奏效。
我在 python 命令行上输入:
结果:
当我使用__coerce__()
没有类派生的方法时,结果
x+y
等于radd called // 32
。但是,对于派生类,会发生错误。
请给我一些帮助,农历新年快乐,提前谢谢你。
c++ - 访问数组中的派生类的问题
我的问题是我想拥有一个包含所有游戏对象的数组,这样我就可以将它们全部放在一起,但是当我尝试访问 myObjs[2]->lives 时,我无法这样做。这是我得到的错误:
c++ - C++调用Base类的模板函数
下面是两个案例。
案例 1) Base->BaseIndirect->DerivedIndirect
案例 2) Base->Derived
在案例 2) 中,我可以使用 3 个符号调用基类的模板函数。在案例 1) 中,我只能使用其中一种表示法来调用基类的模板函数。而且,我无法使用任何符号调用 BaseIndirect 的模板函数 :(。我该如何解决这个问题?谢谢。
编译错误
c++ - 用 new 分配派生类数组的问题
我有一个简单的程序
我认为可以使用 new 来分配派生类对象。此外, v->check() 似乎工作正常。
c++ - 访问类似于 boost::any 的类中的值
我正在boost::any
为教育目的制作一个简单的类,但我不知道如何访问存储的值。我可以完美地设置该值,但是当我尝试访问“持有人”类中的任何成员时,编译器只会抱怨在它派生的类中找不到该成员。virtual
由于模板,我不能将成员声明为。
以下是相关代码:
c++ - C++ 成员函数链接返回类型和派生类
鉴于这个人为的例子:
这个想法是使用“成员函数链接”来能够连续调用多个成员函数。(有很多这样的例子;上面是我能想到的最短的例子。我的实际问题是类似的,如下所述。)
问题是,如果派生类添加了它自己的链接成员函数,但您首先调用基类的成员函数,您会得到一个基类引用,这当然不能用于调用派生类的成员函数。
有没有什么聪明的方法可以解决这个问题并且仍然保持成员函数链接的能力?
实际问题
我的实际问题是我的基类是一个异常,而我的派生类是从基异常派生的类。对于这些类,我也想使用成员函数链接:
问题是set_something()
返回base_exception
但catch
期望 a derived_exception
。当然,人类可以判断异常的实际类型是 a derived_exception
,但编译器显然无法判断。
这就是我真正要解决的问题,即,如何让基异常类能够在异常对象上设置可选参数,同时返回派生类型的实例。我上面给出的point_2d
例子是(我相信)同一个问题的一个更小更简单的版本,供人们理解,并且解决更小的问题也将解决我的实际问题。
请注意,我确实考虑过制作base_exception
模板并传入派生类型,例如:
我相信实际上确实解决了问题,但它不是一个完美的解决方案,因为如果另一个类more_derived_exception
派生自derived_exception
,那么我们又回到了同样的问题。
c++ - 从派生类数组读取访问冲突
(与这个问题有关。)
我有一个基类Base
和两个派生类,Der1
并且Der2
. (有关基本实现,请参阅链接问题。每个都有许多公共属性。)在我的程序中,我创建了一个Base
这样的数组:
然后稍后我用 和 的实例填充它,Der1
如下Der2
所示:
几乎相同的代码用于Der2
.
很久以后,我使用数组来调用这些类中定义的函数:
我的代码编译得很好,但是当我尝试运行它时,我得到“program.exe 中 0x00232d60 处的未处理异常:0xC000005:访问冲突读取位置 0x04064560。”
当我查看我试图访问的数组中的对象时,所有属性的值都是 0.0000 而不是它们应该是的值。还有两种double
类型的数组,看起来最后几个元素未初始化(“1.572398880752e-311#DEN”或“-9.2559631349317831e+061”或类似的)。
我做 .NET 太久了,忘记了很多关于指针的知识,我认为这是我问题的根源......关于如何解决这个错误的任何建议?
c# - 我可以有一个基类,其中每个派生类都有自己的静态属性副本吗?
我有类似以下情况:
我正在尝试进行设置,以便每个派生类都有自己的 x 静态实例,如果我执行以下操作:
然后当我运行时:
我可以做这样的事情吗?如何设置派生类来实现这一点?多谢你们。
编辑:基本上,我有一堆派生类,每个派生类都有该类独有的属性。它不会因每个实例而异,因此我认为应该是一个静态变量。此外,该属性是由一个方法设置的,对于这些类中的每一个都是相同的。我试图避免在每个派生类中复制和粘贴该属性和方法的逻辑。我认为最好以某种方式将该逻辑移至派生这些类中的每一个的基类。但是,我需要每个派生类都有自己的该属性的副本。我不一定必须这样做,如果你们有任何更好的实践建议,我会很高兴听到一些......谢谢!
php - 是否可以在派生构造函数中设置 smarty 目录?
嘿,我正在尝试做这样的事情:
但它失败了SmartyException("Unable to load template file")
。从smarty_internal_template.php
第 163 行开始,它看起来像是$this
在进行任何显示之前检查是否存在。
我的系统似乎设置正确,因为建议的方法(调用$smarty->set*Dir($smartyRoot.'foo');
工作。
有任何想法吗?