从子类1调用超类构造函数的C++规则是什么?
例如,我知道在Java中,你必须将它作为子类构造函数的第一行(如果不这样做,则假定对no-arg超级构造函数的隐式调用 - 如果缺少则会给出编译错误) .
我有一个名为Form的表单ScanFolder,我需要另一个表单,需要非常相似ScanFolder,所以我决定使用表单继承.但是构造函数似乎存在一些误解.
ScanFolder 好像:
public partial class ScanFolder : Form
{
public ScanFolder(MainForm parent, bool[] autoModes, GlobalMethods GMethodsClass)
{
//Doing something with parameters
}
}
Run Code Online (Sandbox Code Playgroud)
我试图Form像这样继承:
public partial class Arch2 : ScanFolder
{
}
Run Code Online (Sandbox Code Playgroud)
但是我收到警告未找到类型'mhmm.ScanFolder'的构造函数,并且Arch2表单编辑模式也出现错误,我看到调用堆栈错误.
所以我尝试过这样的事情:
public partial class Arch2 : ScanFolder
{
public Arch2(MainForm parent, bool[] autoModes, GlobalMethods GMethodsClass)
: base(parent, autoModes, GMethodsClass)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但它仍然是一样的.
如你所见,我显然不知道自己在做什么.我想要实现的是Arch2看起来一样ScanFolder,所以我可以在设计器视图中看到它,并覆盖一些方法或事件处理程序.
作为后续问题,基于类别的方法
父方法由其后代继承.
那么构造函数(例如New())是怎么回事?这对我来说似乎打破了继承.
是否有某个属性将其标记为特殊?(如果是这样的话是什么?)
可以这样请解释发生了什么.