问题标签 [abstract-base-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.
c# - 单元测试将参数传递给基本构造函数
我有以下代码:
我已经对基类进行了单元测试Foo<T>
。由于已经涵盖了基类,我不想为派生类Bar
和Baz
.
我在派生类中唯一真正关心的是正确的字符串target
是否传递给基类。
我正在努力解决如何在不破坏派生类封装或编写冗余单元测试的情况下对其进行单元测试。
所以,问题是,我如何测试正确的值是否从派生类传递给基类的target
参数?
(如果您的答案是“使用组合...”,请使用从上面修改的代码示例进行备份。
谢谢!
c++ - 定义多个派生接口成员
我希望你能帮助我解决以下问题。我正在尝试创建一个灵活的接口系统并遇到问题。这是相关代码:
我无法实例化 S_B 因为编译器声明它是抽象的。怎么了?
c++ - C++复制构造基类指针
环顾四周,找不到任何关于我的问题的建议。我正在尝试为具有包含指向抽象基类的指针的私有变量的类创建复制构造函数。
我什至接近吗?如果没有,我该如何解决这个问题?
c++ - 定义带有 void* 参数的纯虚函数的抽象基类。派生类匹配参数是指向某种类型的指针
我正在使用的修订后的实际基类和派生类加上实例化它的函数并使用非虚函数调用
着色器类.h
着色器类.cpp
LightMapShaderClass.h
LightMapShaderClass.cpp
使用基类的函数
scala - Scala:带有抽象基类的特征混合
我有一个抽象基类 ( Base
),它定义了一些堆栈特征 ( StackingTrait
)。
使用以下语法实现子类会非常方便,但这不起作用,因为编译器说 foo 需要在重新编译时声明,override
然后再使用abstract override
,这是无效的,因为Impl
它是一个类。
我想不出为什么不允许这种语法的充分理由;foo 在逻辑上被定义为,Impl
以便在概念上发生堆叠的顺序保持不变。
注意:我想出了这个解决方法,它可以有效地做我想做的事情,但是辅助类的必要性让我想要一个更好的解决方案。
为什么所需的语法无法编译,是否有优雅的解决方案?
python - 更改模型以从抽象基类继承而不更改数据库
我有一个看起来像这样的产品的简单模型:
我们已经推出了这个,并且有一个填写了这些字段的数据库。我想将此模型更改为从基类继承,如下所示:
并像这样修改 Product 类:
根据我对抽象基类的理解,这两个设置将创建相同的表(对吗?)。所以从技术上讲,在改变这个模型之后,我不应该对数据库做任何修改。但是,当我尝试使用 South 应用它时,它想要删除 Product 表的“名称”列。
由于我们已经推出了这些表,因此我希望保留“名称”列,而不是使用其他解决方案(如 OneToOneField)。
谢谢!
c# - 在视图中显示更多从抽象基础派生的类型的最佳方式是什么?
例如我有这三个类:
以及一个返回列表的服务AbstractBase
我想在表中的强类型 ASP.NET MVC 视图(或 WF 中的 GridView)中显示这些类。那么最好的方法是什么?如果我想添加编辑选项怎么办?
c++ - 创建指向纯虚类的新指针
我有一个如下设计的类:
由于我无法创建抽象对象,因此我无法找到将Meal
-derived 对象添加到的方法。menu
有没有办法执行上述代码?我宁愿Meal
保持抽象。我可以传入一个指向现有的Meal
派生对象的指针,但是我的 unique_ptr 几乎不是唯一的。
python - 使用抽象基类 VS 普通继承
我试图了解使用抽象基类的好处。考虑以下两段代码:
抽象基类:
普通继承:
如您所见,这两种方法都支持使用isinstance
和的变形issubclass
。
现在,我知道的一个区别是,如果您尝试实例化抽象基类的子类而不覆盖所有抽象方法/属性,那么您的程序将失败。但是,如果您使用普通继承 with NotImplementedError
,则在您实际调用相关方法/属性之前,您的代码不会失败。
除此之外,使用抽象基类有何不同?
c++ - 对于带有带有基类指针的构造函数的派生类,如何引用基类指针?
我正在为形状进行抽象基类的作业。对于最后一部分,我们需要编写一个类,它是任何先前 2D 形状的通用 3D 版本,例如。正方形。
所以你可以从我下面的代码中看到,它的构造函数接受一个基类指针shape*
。在我的函数“ getVolume
”中,我基本上需要乘以z
所指向的形状的面积shape*
,这可以通过getArea()
在每个形状各自的类中指定的函数来计算。但是我指的是被指向的形状吗?
如何引用指向的形状?我希望它会是类似的东西,this->getArea()
或者shape*->getArea()
但我只是得到错误,告诉我“形状不代表一个值”等。
任何人都可以提供一些帮助吗?