问题标签 [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++ - GCC 问题:使用依赖于模板参数的基类成员
以下代码不能用 gcc 编译,但可以用 Visual Studio 编译:
我得到错误:
test.cpp:在成员函数'void B::bar()'中:
test.cpp:11:错误:“foo”未在此范围内声明
但它应该是!如果我bar
改为
然后它会编译,但我认为我不必这样做。GCC 在此处遵循的 C++ 官方规范中有什么内容,还是只是一个怪癖?
oop - 接口与基类
什么时候应该使用接口,什么时候应该使用基类?
如果我不想实际定义方法的基本实现,它是否应该始终是一个接口?
如果我有狗和猫课。为什么我要实现 IPet 而不是 PetBase?我可以理解为 ISheds 或 IBarks (IMakesNoise?)提供接口,因为这些接口可以逐个放置在宠物上,但我不明白哪个用于通用宠物。
java - 你有 Hibernate 实体的通用基类吗?
你有 Hibernate 实体的通用基类,即具有 id、版本和其他通用属性的 MappedSuperclass 吗?有什么缺点吗?
例子:
java - Java:新手式继承问题
假设我有一个基类 B 和一个派生类 D。我希望在我的基类中有一个方法 foo(),它返回一个实例类型的新对象。因此,例如,如果我调用 B.foo() 它返回一个 B 类型的对象,而如果我调用 D.foo() 它返回一个 D 类型的对象;同时,实现仅驻留在基类 B 中。
这可能吗?
c++ - 删除指向子类的指针会调用基类析构函数吗?
我有一个class A
为其一个字段使用堆内存分配。类 A 被实例化并存储为另一个类(class B
.
当我处理完 B 类的对象后,我调用delete
,我假设它调用了析构函数……但这是否也调用了 A 类的析构函数?
编辑:
从答案中,我认为(如果不正确,请编辑):
delete
B 的一个实例调用 B::~B();- 调用
A::~A();
A::~A
应该显式地delete
为 A 对象的所有堆分配的成员变量;- 最后,将存储所述 B 类实例的内存块返回到堆 - 当使用new时,它首先在堆上分配一块内存,然后调用构造函数来初始化它,现在在调用所有析构函数来完成对象之后对象所在的块被返回到堆中。
c# - 是否可以使用显式类型转换将基类对象分配给派生类引用?
是否可以在 C# 中使用显式类型转换将基类对象分配给派生类引用?
我已经尝试过了,它会产生运行时错误。
c# - 在派生类 C# 中引发基类事件
我有一个基类 DockedToolWindow : Form,以及许多从 DockedToolWindow 派生的类。我有一个容器类,它保存并将事件分配给 DockedToolWindow 对象,但是我想从子类调用事件。
我实际上有一个关于如何实现这个MSDN 网站告诉我要做的事情的问题。下面的这一部分给了我这个问题:
当然这个例子可以编译和工作,但是当我用“Move”(我从Form派生的一个事件)替换“ShapeChanged”时,它错误地说我不能在没有+=或-=的情况下在右侧移动。我还删除了 ShapeEventArgs 通用标签。
任何煽动为什么这不起作用?在类中声明的事件和继承的事件有什么区别?
c# - C# 类命名约定:是 BaseClass 还是 ClassBase 还是 AbstractClass
命名基类的推荐方法是什么?是用“ Base ”或“ Abstract ”作为类型名称的前缀还是我们只是用“Base”作为后缀?
考虑以下:
类型:ViewModel
例如MainViewModel,ReportViewModel
基类:BaseViewModel
或ViewModelBase
或AbstractViewModel
还要考虑:
类型:Product
例如VirtualProduct , ExpiringProduct
基类:BaseProduct
或ProductBase
或AbstractProduct
你觉得哪个更标准?
或者
algorithm - stl 和 .net 基础库默认搜索使用哪种排序算法?
我现在正在研究合并排序的改进版本。我用 C++ 和 C# 实现了它。然后分别与stl sort和array.sort()算法进行比较。在 C++ 中,我得到了相同(有时更好)的结果。但是在 C# 中,我不得不使用不安全的代码来使用指针。这里的性能与默认排序没有太大的可比性。所以,我想知道-
1. stl 和 .net 基类库中使用了哪些算法?(链接更好)
2. 不安全代码有性能问题吗?
3. 关于衡量新算法的性能对我有什么建议吗?
.net - 实体基类库
是否有带有客户、地址、订单等实体的基类库?