在C ++中
class A{
..
..
}
class B{
..
..
}
现在在java中我能够生成A.java,B.java类。现在我想在Java A中扩展B.所以我用%typemap(javabase)A“B”。我可以看到A在A.java中扩展了B
现在我在B类中没有默认构造函数。所以在生成的A.java中我收到错误
“隐式超级构造函数B()未定义。”
如果我手动将super添加到生成的A构造函数中,一切都会正常工作。但我不想编辑A.java。
使用swig类型映射可以为A生成构造函数,它将调用超级构造函数吗?
答案 0 :(得分:1)
%typemap(javabody) A %{
private long swigCPtr;
protected boolean swigCMemOwn;
protected $javaclassname(long cPtr, boolean cMemoryOwn) {
super(cPtr,cMemoryOwn);
swigCMemOwn = cMemoryOwn;
swigCPtr = cPtr;
}
%}
解决了问题