Arn*_*her 5 c++ abstract-class interface abstract
我想知道是否可以在函数中执行侦听器/抽象类的Java样式实现.
在Java中,如果我有一个如下界面:
public interface ExampleListener {
public void callExampleListenerMethod();
}
Run Code Online (Sandbox Code Playgroud)
我知道可以在一个方法中实现这个接口,以便快速使用这样的东西:
someRandomJavaFunction{
//do some stuff
ExampleListener object = new ExampleListener() {
@Override
public void callExampleListenerMethod() {
//do other stuff
}
});
}
Run Code Online (Sandbox Code Playgroud)
如果我有一个像这样定义的抽象类,现在可以在C++中以某种方式完成第二部分
class ExampleListener {
public:
virtual ~ExampleListener(); //virtual destructor is apparently important
virtual void callExampleListenerMethod() = 0; //method to implement
};
Run Code Online (Sandbox Code Playgroud)
当然我可以简单地将它用作Base类,我不得不实现该方法.但是有可能对java进行类似的"动态"实现吗?
不,在C++中没有相当于"on-the-fly"方法的实现.你在C++中最接近的是本地类
void f()
{
class MyLocalClass: public Listener
{
virtual void MyMethodOverride()
{
//...
}
}
Listener* pListener = new MyLocalClass;
//...
}
Run Code Online (Sandbox Code Playgroud)