派生类会在自己的构造函数之前调用基类中的受保护构造函数吗?

我的派生类应该经过与基类相同的初始化过程,初始化一些变量并设置一些状态。下面是一个简化的例子:

struct ContentView: View {
    
    var body: some View {
        
        TextFieldView()
        
    }
    
}


struct TextFieldView: View {
    
    @State private var email: String = String()
    @State private var textFieldIsUnderEdit: Bool = Bool()
    
    var body: some View {
        
        VStack {
            
            if textFieldIsUnderEdit { Spacer() }
            
            TextField("Enter your email address Here...",text: $email,onEditingChanged: { _ in textFieldIsUnderEdit.toggle() })
                .keyboardType(.emailaddress)
            
            Divider()
            
        }
        .padding(.horizontal)
        .animation(nil)
        
    }
    
}

我的子类“Sub”的默认构造函数会调用基类中受保护的构造函数吗?这意味着如果打印,子类中的 x 将为 1。

编辑:为 printX() 添加返回类型

qqq279985481 回答:派生类会在自己的构造函数之前调用基类中的受保护构造函数吗?

是的,默认构造函数是派生类将调用其基类的默认构造函数。 (虚拟继承会变得更有趣,但代码片段中没有,所以我们不需要深入研究那些可怕的东西)。

有关详细信息,请参阅 https://en.cppreference.com/w/cpp/language/default_constructor 上的隐式定义的默认构造函数

...也就是说,它调用基类和基类的默认构造函数 此类的非静态成员。

本文链接:https://www.f2er.com/27755.html

大家都在问