19得票5回答
有没有一种方法可以禁止我的类被子类化?

假设我有一个名为“Base”的类,以及一个名为“Derived”的类,它是Base的子类,并访问Base的受保护方法和成员。 现在我想做的是使其他类不能继承Derived。在Java中,我可以通过声明Derived类为"final"来实现。是否有一些C++技巧可以产生相同的效果? (理想情...

18得票4回答
在Python中创建默认列表

我正在尝试创建一个等效于非常有用的collections.defaultdict的列表。以下设计效果很好:class defaultlist(list): def __init__(self, fx): self._fx = fx def __setitem__...

17得票4回答
什么是子类化?

我刚接触Java,正在尝试创建一个XML文档,并重复克隆该文档中特定的节点(不包括文本节点)。有人回答说我应该对该节点进行子类化并覆盖克隆方法。因此,我的问题是什么是子类化?

16得票10回答
面向对象编程。选择对象

我对面向对象编程还是个新手,还没找到自己的“本能感觉”,想通过一个例子来确定不同类型的对象之间的界限。我的例子是桌子上的饮料。 假设我创建了一个对象Drink,它有像volume和temperature这样的属性,以及像pour()和drink()这样的方法,我很难看出具体的饮料“类型”在哪...

16得票5回答
在Swift中创建PFObject子类

在PFObject子类上添加属性和方法的Parse文档中,方便地跳过了Swift语法,在其示例代码清单中只列出了Objective-C语法: https://parse.com/docs/ios_guide#subclasses-properties/iOS// Armor.h @inter...

15得票1回答
在Swift中的NSObject子类初始化器中调用super.init()

我正在使用Swift构建iOS应用程序,并参考苹果提供的Lister示例项目。 Lister使用两个模型对象:List和ListItem。我发现,尽管它们是NSObject的子类,但两者的初始化器都没有调用super.init()。 然而,在Lister的Objective-C版本中,这两...

14得票3回答
如何在Swift中继承自定义UIViewController?

我想创建一个可重复使用的视图控制器UsersViewControllerBase。 UsersViewControllerBase继承自UIViewController,并实现了两个代理(UITableViewDelegate,UITableViewDataSource),并拥有两个视图(U...

14得票2回答
我该如何在一组继承自Django TestCase的类中添加测试方法?

我有一组测试用例,所有的测试都应该进行完全相同的测试,例如“方法x是否返回现有文件的名称?” 我认为最好的方法是创建一个从TestCase派生的基类,让它们都共享这个类,并将测试添加到该类中。不幸的是,测试框架仍然尝试运行基类的测试,这是没有意义的。class SharedTest(TestC...

13得票3回答
无法使用mypy将类(类型为“Any”)子类化为“QObject”

我有一个继承QObject的类。一切都运行良好,但是当我在其上运行mypy时,会出现以下错误: "error: Class cannot subclass 'QObject' (has type 'Any')" 目前我完全被卡住了。我一直在阅读mypy文档,但找不到错误所在。 这里是...

13得票5回答
在C++中,覆盖现有的虚函数是否会破坏ABI?

我的库有两个类:一个基类和一个派生类。在当前版本的库中,基类有一个虚函数foo(),而派生类没有覆盖它。在下一个版本中,我想让派生类覆盖它。这会破坏ABI吗?我知道引入新的虚函数通常会破坏ABI,但这似乎是一个特殊情况。我的直觉是,这应该只是改变vtbl中的偏移量,而不是实际更改表的大小。 ...