问题标签 [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.
.net - 基类中的事件
好的,所以我有一个声明 event 的基类StatusTextChanged
。我的孩子班,当然不能直接提出这个事件。
所以我结束了这样的事情(为了简单起见):
然后在我调用的子类中
MyBase.RaiseStatusTextChangedEvent("something")
。有没有更好或更推荐的方法来做到这一点?
编辑:VB.NET 或 C#,无论哪种方式,它的工作原理基本相同。
编辑:所以在响应之后,我在基类中,然后只需在子类中设置 StatusText 属性......
c++ - 可选功能的设计模式?
我有一个派生子类继承自的基本类,它具有在所有派生类中应该相同的基本功能:
现在,基于派生类,我想向 switch 中“添加”更多 case 语句。我在这里有什么选择?我可以声明虚函数,并且只在要使用它们的派生类中定义它们:
但这意味着当更改任何派生类中的函数时,我必须编辑我的基类以反映这些更改。
是否有专门针对此类问题的设计模式?我购买了许多关于设计模式的书籍,但我正在“按需”研究它们,所以我不知道是否有我正在寻找的这种模式。
c++ - 如何为所有派生类型部分专门化一个类模板?
std::tr1::hash
我想为基类和所有派生类部分专门化我无法更改 () 的现有模板。原因是我使用奇怪重复的模板模式来实现多态性,并且哈希函数是在 CRTP 基类中实现的。如果我只想部分专注于 CRTP 基类,那很容易,我可以写:
但是这种特化与实际的派生类不匹配,只有CRTPBase<Derived>
. 我想要的是一种为Derived
当且仅当它派生自CRTPBase<Derived>
. 我的伪代码是
...但这不起作用,因为编译器无法判断enable_if<condition, Derived>::type
是Derived
. 如果我可以更改std::tr1::hash
,我会boost::enable_if
按照文档的建议添加另一个要使用的虚拟模板参数enable_if
,但这显然不是一个很好的解决方案。有没有办法解决这个问题?我是否必须在每个或我创建的每个unordered_set
或我创建的自定义哈希模板上指定一个自定义哈希模板,或者为每个派生类unordered_map
完全专门化?hash
c++ - 为什么派生模板类不能访问基模板类的标识符?
考虑:
我无法使用 GCC g++ 3.4.4 (cygwin) 编译它。
在将这些转换为类模板之前,它们是非泛型的,派生类能够看到基类的静态成员。这是 C++ 规范要求中的可见性损失还是我需要采用的语法更改?
我知道每个实例化Base<T>
都会有它自己的静态成员“ ZEROFILL
”和“ NO_ZEROFILL
”,它们是不同的变量Base<float>::ZEROFILL
,Base<double>::ZEROFILL
但我真的不在乎;常量用于代码的可读性。我想使用静态常量,因为它在名称冲突方面比宏或全局更安全。
c++ - 从派生类对象访问具有相同签名的基类 fn
是否可以使用派生类对象访问与派生类函数具有相同签名的基类函数?这是我在下面所说的示例..
c++ - 导出关于 c++ 的问题
为什么我无法访问基类 A 的 B 类初始化列表中的成员?
asp.net - 有没有更好的方法来调用基类的每个派生对象的方法?
我有一个基类,我派生了几个类。我有另一个类以不同的方式使用所有这些派生类。但是,我想Update()
在每个派生类上调用方法(从基类继承)。有没有一种简单的方法可以做到这一点,或者我必须这样做:
linq-to-sql - 将派生类映射到 Linq-to-SQL 中的表
我有一个审计属性的抽象基类。为简洁起见说它有一个属性
然后我的可审计域对象继承自这个类
我有下表 DDL,我想将我的域对象“源”映射到该 DDL。本质上,每个(具体)域对象和表之间的关系是 1-1,每个表都有所需的审计列。
使用外部映射文件,我第一次尝试将类映射到表会很愚蠢:
但是,这会产生以下异常:
映射中的列或关联“CreatedTime”在“源”类型中没有对应的成员。不支持从上述根类型映射成员。
在我的持久层的上下文中,我不是试图表示继承层次结构,而是在我的应用程序的上下文中,我只是使用一个基类来提供我的所有域对象所需的属性。通过大量摆弄我的映射文件(包括将审计列映射到基本 AbstractAuditableEntity 类型)和阅读,我无法实现我认为非常简单的 ORM 任务。
任何想法或建议都将受到欢迎!谢谢
c# - 为什么 XMLSerializer 采用基类的 DefaultValue 属性进行序列化
虽然第一个序列化是我所期望的(默认值的非序列化):
第二个结果是:
显然 XmlSerializer 采用基类的默认值,而不是采用新的值。使用“覆盖”覆盖虚拟属性会产生相同的结果。将 ExData 的属性 A 的初始化更改为 10 会导致不序列化此属性,就好像应用了基类属性的默认值一样。有人可以向我解释这种行为吗?有人知道解决这个问题吗?
我的目标是不序列化默认值,但更改派生类的默认值。
c++ - 使用抽象类实现派生类的一堆元素
我必须在我的大学做一个基本的 C++ 讲座,所以要明确一点:如果允许的话,我会使用 STL。
问题:我有一个名为“shape3d”的类,从中派生了“cube”和“sphere”类。现在我必须实现“shape3d_stack”,这意味着能够保存“立方体”和“球体”类型的对象。我为此使用了数组,当我尝试使用一堆整数时它工作得很好。我试着这样做:
shape3d_stack.cpp:
但是,不幸的是,编译器告诉我:
我想这一定是我自己造成的某种非常丑陋的设计错误。那么在我的堆栈中使用从“shape3d”派生的各种对象的正确方法是什么?