在C ++中,我想不出一个我想从基类inheritanceprivate / protected的情况: class Base; class Derived1 : private Base; class Derived2 : protected Base; 它真的有用吗?
我有一个从其他两种formsinheritance的forms。 在我的表单中,我想更改在其中一个父窗体中定义的字段的标签。 有谁知道这可以做到吗? 我正在尝试在我的__init__执行它,但是它会抛出一个错误,说''RegistrationFormTOS'对象没有'email'属性。 有谁知道我怎么能做到这一点? 谢谢。 这是我的表单代码: from django import forms from django.utils.translation import ugettext_lazy as _ from registration.forms import RegistrationFormUniqueEmail from registration.forms import RegistrationFormTermsOfService attrs_dict = { 'class': 'required' } class RegistrationFormTOS(RegistrationFormUniqueEmail, RegistrationFormTermsOfService): """ Subclass of “RegistrationForm“ which adds a required checkbox for agreeing to a site's Terms of Service. """ email2 = forms.EmailField(widget=forms.TextInput(attrs=dict(attrs_dict, […]
有没有办法迫使孩子类重写超类的非抽象方法? 我需要能够创build父类的实例,但是如果一个类扩展了这个类,它必须给它自己的一些方法的定义。
是否有一个具体的规则如何覆盖equals()和hashCode()在考虑超级字段的 子类 ? 知道有很多参数:超级字段是私人/公共,有/没有getter … 例如,Netbeans生成的equals()和hashCode()不会考虑超级字段…和 new HomoSapiens("M", "80", "1.80", "Cammeron", "VeryHot").equals( new HomoSapiens("F", "50", "1.50", "Cammeron", "VeryHot")) 将返回真实:( public class Hominidae { public String gender; public String weight; public String height; public Hominidae(String gender, String weight, String height) { this.gender = gender; this.weight = weight; this.height = height; } … } public class HomoSapiens […]
如果我有一个Python类: class BaseClass(object): #code and the init function of the base class 然后我定义一个孩子类,如: class ChildClass(BaseClass): #here I want to call the init function of the base class 如果基类的初始化函数需要一些参数,我将它们作为子类的初始化函数的参数,那么如何将这些parameter passing给基类呢? 我写的代码是: class Car(object): condition = "new" def __init__(self, model, color, mpg): self.model = model self.color = color self.mpg = mpg class ElectricCar(Car): def __init__(self, battery_type, model, […]
我正在查看我正在使用的API的实现。 我注意到一个结构是从一个类inheritance,我暂停了思考它… 首先,我没有看到在我研究的C ++手册中,一个结构体可以从另一个结构体inheritance: struct A {}; struct B : public A {}; 我猜在这种情况下,struct Binheritance了stuct中的所有数据。我们可以在一个struct中声明public / private成员吗? 但是我注意到这个: class A {}; struct B : public A {}; 从我的在线C ++手册: 一个类是一个数据结构的扩展概念:它不仅保存数据,而且可以保存数据和函数。 即使类A有一些成员函数,上述inheritance是否有效? 当一个结构体inheritance它们的时候会发生什么? 那么相反呢:一个类从一个结构inheritance? 实际上,我有这个: struct user_messages { std::list<std::string> messages; }; 我用它来遍历它,就像这个foreach message in user_messages.messages 。 如果我想添加成员函数到我的结构,我可以改变它的声明和“提升”到一个类,添加function,仍然像我以前一样迭代我的user_messages.messages? 显然,我还是一个新手,我还不清楚结构和类如何相互作用,两者之间的实际区别是什么,inheritance规则是什么…
假设我们有一个模板类Area ,它有一个成员variablesT area ,一个T getArea()和一个void setArea(T)成员函数。 我可以通过键入Area<int>来创build特定types的Area对象。 现在我有一个inheritanceArea类的Rectangle类。 由于Rectangle本身不是模板,我不能inputRectangle<int> 。 我如何专门化Rectangle对象的inheritanceAreatypes? 编辑:对不起,我忘了澄清 – 我的问题是是否有可能inheritance区域没有专门化,所以它不被inheritance为区域的整数,但面积矩形可以专门化的types。
假设我有一个基类,有一些成员variables,没有虚函数: class Base { int member; }; 以及一个派生类,它以非虚方式从Base派生,并且没有新的成员variables,也没有虚函数: class Derived : Base { }; 显然, sizeof(Derived)不能小于sizeof(Base) 。 sizeof(Derived)需要等于sizeof(Base) ?
请考虑下面的代码: struct A { void f() { } }; struct B1 : A { }; struct B2 : A { }; struct C : B1, B2 { void f() // works { B1::f(); } //using B1::f; // does not work //using B1::A::f; // does not work as well }; int main() { C c; cf(); […]
我想要做的是构build一个moq为I1 – 这是很好的…但是在方法的过程中,我正在testing使用这个模拟我需要把它投到I2为了访问一些属性不是I1 Interface I1 { int AProperty{get;set;}} Interface I2 {int AnotherProperty{get;set;}} 然后我有一些物体 Class O1 : I1 {} 和 Class O2 : O1 , I2 {} 问题是当我有一个I2实现对象的实例时,我可以将它转换为I1,以便访问通过该接口实现的方法。 在代码中,这不是一个问题,everythign按预期工作。 在这个类上写unit testing时唯一的问题就出现了。 接口还公开了一个名为GetNewInstance的方法,该方法将实现对象的初始化实例返回到IGetNewInstance接口中…我通常可以嘲笑它并使其自身返回(所以我继续使用模拟对象)。 然而,当你试图把这个I2types的返回对象强制转换为I1时,会产生一个空引用结果 – 这是有道理的,因为实现I2的模拟对象并不inheritance任何inheritanceI1的对象。 问题是我怎样才能强制模拟对象同时从I1 I2 I2同时inheritance?