【发布时间】:2015-07-19 21:51:48
【问题描述】:
在 Java 中,您可以初始化一个抽象类,而无需通过实现抽象方法来派生一个派生类。例如:
public abstract class A { public abstract void a(); }
public class Test {
public static void main(String[] args) {
A b = new A() { @Override public void a() { System.out.println("Test"); } }
}
}
我的问题是:你能在 C++ 中做类似的事情吗?
【问题讨论】:
-
副本比这个简单的问题复杂大约 10 倍。更简洁的答案是:“不。但请阅读更多关于 C++11 lambda 的内容。”
-
C++ 中不需要它。在 Java 中,匿名类用于实现 lambdas(在 Java8 之前,lambdas 被引入到语言中)。在 C++ 中,可以直接使用 lambda,无需实现抽象类。
-
@ChristianHackl 我同意,这就是我投票重新提出这个问题的原因。
标签: c++