懂Cocos2d-x和java的来指导以下..谢谢了

Cocos2d-x里:

Demo1.h文件:
class Demo1 : public CCObject{
public:
Demo1(string p);

virtual void onListener(string msg) = 0;
virtual void onError(string msg) = 0;

};

Demo1.cpp文件:
Demo1::Demo1(string p){
……
}

Event1.cpp文件:
void Event1::callback(cocos2d::CCObject *obj){

Demo1 *d = new Demo1(param); // 此处报错, 应该怎么写,可不可以写成java那样

}

java里:
public class Event1 {

private Boolean click(String pp) {
    Demo1 d =new Demo1(“……”) {
        
        @Override
        public void onListener(String msg) {
            // 此处可以操作Event1的其他方法
        }
        
        @Override
        public void onError(String msg) {
            
        }
    };
    
    ……
}

//其他方法

}

请问 java里的这种写法, 在Cocos2d-x里应该怎么写???
谢谢了…

你C++只能写一个类继承Demo1然后实现里面的纯虚函数才行。
java中之所以可以那么写 new Demo1() {} ,这货表面上new了一个接口,实际上是个匿名内部类,运行后会在你 Event1.class同级目录下生成一个Event1$1.class 这样的文件,这货就是那个匿名内部类的编译文件。
别看c++比java复杂很多,到c11反正好像还没有类似的实现。

恩…
现在就是用Event1继承的Demo1…但总觉得这种用法很不爽…