也许我所说的问题不是正确的问题,因为我已经知道简短的答案是“你不能”。 情况 我有一个带有两个参数的重载构造函数的基类。 class Building { public BuildingType BuildingType { get; protected set; } public string Address { get; set; } public decimal Price { get; set; } public Building() { BuildingType = BuildingType.General; Address = "Unknown"; } public Building(string address, decimal price) : this() { Address = address; Price = price; } } 这个类正在使用一个枚举 […]
在下面的代码中,我收到编译错误 Error Too many arguments to 'Public Sub New()' Dim TestChild As ChildClass = New ChildClass("c") 。 我在TestChild.Method1()上没有收到它,即使它们都在我inheritance的基类上。 Public Class BaseClass Public ReadOnly Text As String Public Sub New(ByVal SetText As String) Text = SetText End Sub Public Sub New() Text = "" End Sub End Class Public Class ChildClass Inherits BaseClass End Class Public […]
我有一个结构,我创build一个自定义的构造函数来初始化成员为0。 我在旧的编译器中看到,在发布模式下,如果不将memset设置为0,则值不会被初始化。 我现在想在联合中使用这个结构,但因为它有一个不平凡的构造函数而得到错误。 所以,问题1.默认的编译器是否实现了构造函数保证一个结构的所有成员都将被初始化为空? 非平凡的构造函数只是将所有成员的memset设置为“0”,以确保结构清晰。 问题2:如果必须在基础结构上指定构造函数,如何实现一个联合来包含该元素并确保初始化的基元素为0?
在处理模板的时候,我遇到了一个需要,即为了创build对象而从inheritance类访问基类构造函数,以减less复制/粘贴操作。 我想通过using关键字以相同的方式与function的情况下做到这一点,但这是行不通的。 class A { public: A(int val) {} }; class B : public A { }; class C : public A { public: C(const string &val) {} }; class D : public A { public: D(const string &val) {} using A::A; // g++ error: A::A names constructor }; void main() { B b(10); // […]
我通过删除一些空的构造函数来使构造函数更加严格。 我很新的inheritance,并与我得到的错误困惑:基类不包含无参数的构造函数。 我怎样才能使A2从Ainheritance,而没有在A中有一个空的构造函数。另外,为了我个人的理解,为什么A2需要A的空构造函数? Class A{ //No empty constructor for A //Blah blah blah… } Class A2 : A{ //The error appears here }
我怎样才能最好地处理以下情况? 我有一个构造函数需要一段时间才能完成。 var Element = function Element(name){ this.name = name; this.nucleus = {}; this.load_nucleus(name); // This might take a second. } var oxygen = new Element('oxygen'); console.log(oxygen.nucleus); // Returns {}, because load_nucleus hasn't finished. 我看到三个选项,每个选项都与众不同。 一 ,给构造函数添加一个callback。 var Element = function Element(name, fn){ this.name = name; this.nucleus = {}; this.load_nucleus(name, function(){ fn(); // Now continue. […]
当编写C ++ 11代码来为类的头文件中的类成员设置默认值时,是不是很好的做法? 还是在这个类的构造函数中做这个更好? 编辑: 我的意思是: foo.h : #include <string> using std::string; class Foo{ private: string greet = "hello"; public: Foo(); }; VS foo.cpp (当然有必要的头文件,但没有在类初始化): Foo::Foo(){ greet = "hello"; } 哪一个更好,为什么?
我试图创build一个类,它有一个构造函数,只有一个参数。 当我创build对象的新实例时,它将返回一个指针。 class Adder def initialize(my_num) @my_num = my_num end end y = Adder.new(12) puts y 我究竟做错了什么? 谢谢
在两种语言都可用的情况下,您是否希望看到实例构造函数或返回实例的静态方法? 例如,如果你从char[]创build一个String : String.FromCharacters(chars); new String(chars);
我知道我在这里问一些严重的问题 我有一些Foo类和一个扩展Foo的类Bar 。 在Foo我有一个构造函数,它将一组参数设置为其字段。 导出Bar等类通常不需要修改。 现在我的IDE给我“Foo中没有默认的构造函数” 。 从一点谷歌search这似乎是因为“构造函数不被inheritance”。 所以一切都很好,但是我怎样才能在不重复每个派生类中的构造函数的情况下工作? 我假设有一个更理智的方法?