问题标签 [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++ - 指向成员问题的指针
$4.11/2 个州 -
“指向cv
B
类型成员的指针”类型的右值,其中是类类型,可以转换为“指向cv类型 成员的指针”类型的右值,其中是 的派生类(第 10 条)。如果是 的不可访问(第 11 条)、模棱两可(10.2)或虚拟(10.1)基类 ,则需要此转换的程序格式错误。T
B
D
T
D
B
B
D
我的问题是为什么我们有B
不能成为虚拟基类的限制D
?
c# - 寻找在基类中实现功能的通用方法
我正在尝试在我的域层中简单地实现规范模式。
如果我有一个充满这样规范的静态类:
然后我可以做这样奇妙的事情:
我还可以将 bool 方法添加到 Foo 以确定特定实例是否符合规范:
鉴于 Foo 和我所有的域实体一样,扩展了 DomainObject,有没有办法可以将 Meets() 的通用实现放入 DomainObject 以节省我在每个实体中分别实现 Meets()?
c++ - 如何在 C++ 中实现转换为私有基类
如何在 C++ 中实现转换为私有基类?我不想使用诸如添加朋友之类的技巧。定义公共铸造运营商不起作用。
编辑 :
例如我有:
编辑2
我为什么要这样做?
假设我必须定义一些非常重量级的属性,并且可以是几种相似类型(如 VelocityX VelocityY 等)。然后我希望能够拥有可以具有任何这些属性集的类。如果我想处理这些属性,很明显,我宁愿将它们转换为它们的基本类型,而不是为每个变体添加一个实现。我不使用公共继承,因为最好在需要的地方显式转换,而不是让私有接口隐式可见。不是一个真正的问题,但我想有一个解决方案:)
c++ - 指向基类的指针
如果我有以下课程:
在某处我检测到B
我拥有的类的指针实际上指向一个类C
,但是一个函数需要一个指向类的指针A
,我该怎么做才能获得指向类的指针A
?
c# - 抽象阻碍了自定义类型的使用,实现中要遵循哪些规则?
我已经构建了一个自定义类型系统,用于在应用程序内的 C# 脚本中使用。这些脚本是即时编译的,并允许与应用程序内部数据进行交互。这个类型系统是用抽象的方式设计的,使用的接口如IValue
. 的实现IValue
可以是RefString
, RefInteger
, RefDouble
(在许多其他中,但这足以证明我的问题)。
现在我们到了我被卡住的地步……这些IValue
对象的使用有点不自然。始终使用接口与对象交互被认为是一种好的设计,但不可能为接口定义隐式转换或重载运算符。这产生了不可避免的丑陋显式转换的情况,以便使用正确的运算符。
例子:
对于涉及值类型的表达式中的 C#,提供了隐式转换。设计这种定制系统的好方法是什么?
我重写了类型系统,删除了IValue
接口并引入了一个RefValue
基类。这样,已经可以消除一部分显式强制转换。我在这个基类中实现了一些运算符重载,但这给默认转换运算符带来了很多麻烦……除此之外,在运算符实现中实现的逻辑涉及到很多关于系统类型的知识。我认为这在某种程度上仍然是一个人必须走的路,但是要遵循什么规则,以一种好的和安全的方式实施呢?
编辑:经过一段时间的努力,我能找到的一些规则是:
- 仅隐式声明来自基本类型(int、double、string、...)的转换运算符
- 显式声明到基本类型的转换(以避免隐式转换为 int!经常发生这种情况,但为什么?)
- 为避免模棱两可的调用,不应在基类和派生类中重写 +、-、/、* 运算符。【那该怎么走呢?我在派生类中进行了操作重载,这需要在使用时进行强制转换,这又是丑陋的......]
c++ - 从基类引用调用派生类方法
我希望这会导致“Class Unusual_Material”显示在控制台上。有没有办法可以做到这一点?在我的程序中,我有一个 Material 类,从中派生出其他更具体的材料。Material::foo() 方法表示 Material 中适用于大多数材料的方法,但有时,需要为具有不寻常属性的材料定义另一个 foo()。
我程序中的所有对象都包含一个 Material 字段。如果为它们分配了不寻常的材料,我希望调用派生的、不寻常的 foo 。
这可能很容易,或者不可能,但我无法弄清楚。
谢谢
c++ - 基模板类数据成员在派生模板类中不可见?
考虑以下 C++ 代码,
我得到编译错误:在成员函数中void B<Derived>::foo()
:
template_inherit.cpp:12: 错误: 'usable_' 未在此范围内声明。
这是为什么 ?有什么好的解决办法吗?
android - 使用相同侦听器的多个活动
我得到了 4 个活动,它们都包含一个 xml-footer,其中包含 4 个按钮(每个活动一个)。我现在想为这些按钮设置 onclicklisteners(它是页脚中的自制菜单)。
问题是,我如何使用侦听器以便我可以重用代码?我有两个想法:
创建一个实现 onclicklistener 的类,在每个活动中我都会获取按钮,然后创建侦听器类的新实例并执行 button.setOnClickListener(onClickListener) 问题是在侦听器类中,我将如何检查哪个按钮调用事件?以及如何创建启动活动的意图,通常我会这样做: Intent intent = new Intent(FromActivity.this, ToAcitivty.class) 但我没有对 FromActivity 的引用。
创建一个从活动扩展的基类,然后 4 个活动将从基类扩展。然后我想在基类中设置监听器。这里的问题是我无法通过执行 Button button1 = (Button)findViewById(R.id.menu_button1); 来获取对按钮的引用。button1 将为空。我什至没有调用 setEventView 因为这应该在活动中而不是在基类中完成。
有任何想法吗?
谢谢
asp.net-mvc - ASP.NET MVC: Ignore custom attribute in a base controller class
I have a number of Controllers in my project that all inherit from a controller I've named BaseController. I wrote a custom attribute that I applied to the entire BaseController class, so that each time an action runs in any of my controllers, that attribute will run first.
The problem is that I have a couple of controller actions that I'd like to ignore that attribute, but I don't know how to do it.
Can anyone help? I'm using MVC 1.
Thanks.
asp.net - 在自定义的UserControl中定义一个基类(ascx)的属性,并在aspx中实例化一个子类
我定义了 3 个这样的自定义用户控件:
然后我定义了另一个具有基类属性的 UserControl:
在 aspx 文件中,我正在使用这个控件,但我想定义一个 MyConcreteControl1 的实例而不是MyAbstractControl
但如果我写:
ChildElement只能定义为MyAbstractControl实例。我想根据上下文创建一个MyConcreteControl1或MyConcreteControl2实例,但我不知道如何。