有效的c ++项目9
函数createLogString可以是虚拟的吗?
<view
android:id="@+id/view3"
style="@style/AppTheme"
class="android.support.constraint.Placeholder"
android:layout_width="367dp"
android:layout_height="63dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="136dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="@drawable/bordertext"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
答案 0 :(得分:5)
是的,它可以是虚拟的(而不是静态的)。但是,它在构建过程中仍将是静态绑定的,并且不会动态分配。
使其虚拟化的唯一要点是,如果它也用于该类的其他成员(不是构造函数/析构函数)中,并且派生类可以覆盖它以对那些成员做一些有用的事情。但是,那开始有淡淡的设计气味痕迹。
斯科特的“在构造或破坏过程中从不调用虚拟功能”的建议源于这样的事实,即它很少会完成有用的工作。