当我编写 java 时,可以在初始化类时覆盖抽象方法。我认为它看起来像这样:
AbstractClass object = new AbstractClass(){
void inheritedMethod(){
...
}
};
这在 C++ 中是否可行,如果可行,语法是什么?
最佳答案
当您在 Java 中执行此操作时,您正在创建一个具体的类,该类是在本地定义的,没有名称。
您可以在 C++ 中使用局部类定义后跟变量声明来接近这一点。
class Concrete : public AbstractClass {
public:
void inheritedMethod() {
cout<<"inherited method";
}
} object;
例如,在上下文中:
class AbstractClass {
public:
virtual void inheritedMethod() =0;
};
void bar() {
class Concrete : public AbstractClass {
public:
void inheritedMethod() {
cout<<"inherited method";
}
} object;
object.inheritedMethod();
};
关于c++ - 在 C++ 中是否可以在初始化时覆盖虚拟方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16693582/