好的,所以我写了一些代码,需要操作重载才能使语法具有良好的可读性。现在我正在使用Java编写程序。但是我虽然嘿c ++得到了操作重载并且android支持Java和c ++编程,所以也许我可以创建我需要在c ++中使用操作重载并使用Java代码中的类。我想知道这是否会起作用,或者Java对操作过载的限制会阻止我这样做吗?
答案 0 :(得分:3)
是的,但不是你想象的方式。您可以使用JNI调用NDK函数,这些函数可能内部使用运算符重载。但是,从本机方法调用的任何Java调用都将调用C ++函数,该函数具有与声明的本机函数的类和名称对应的特定名称。
例如,以下Java声明:
package com.foo;
class Obj {
int i;
native void doCalc();
}
将匹配以下C ++声明:
JNIEXPORT void JNICALL
Java_com_foo_Obj_doCalc(JNIEnv * env, jobject obj)
{}
显然不是操作员超载。该函数本身可以在执行时使用重载运算符。