【发布时间】:2012-03-05 07:48:32
【问题描述】:
在 Java 中,可以编写具有未实现的抽象方法和调用抽象方法的非抽象方法的抽象超类。然后在子类中实现了抽象方法。然后,当您创建子类的实例时,超类使用子类中的实现。我如何在 C++ 中实现这一点?
这就是我的意思,但在 Java 中:
SuperClass.java
public abstract class SuperClass {
public SuperClass() {
method();
}
private void method() {
unimplementedMethod();
}
protected abstract void unimplementedMethod();
}
子类.java
public class SubClass extends SuperClass {
public SubClass() {
super();
}
@Override
protected void unimplementedMethod() {
System.out.println("print");
}
public static void main(String[] args) {
new SubClass();
}
}
如果你能告诉我这是如何在 C++ 中完成的,那就太棒了。 :)
【问题讨论】:
-
如果您很好奇,您正在实现的实际上是一种相当常见的设计模式。如果我有正确的模式,这称为模板方法模式:en.wikipedia.org/wiki/Template_method_pattern
标签: c++ class methods implementation abstract