好的,我编写了一些代码,这些代码需要操作重载才能使语法具有良好的可读性。现在,我正在使用Java编写程序。但是我认为,c++实现了操作重载,而android支持Java和c++编程,所以也许我可以在c++中创建操作重载所需的类,并在c++代码中使用该类。我想知道的是,这是否有效,或者Java中对操作重载的限制会阻止我这样做吗?
发布于 2014-02-12 20:54:11
是的,但不是你所期望的那样。您可以使用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)
{}这显然不是操作者过载。该函数本身可以在执行过程中使用重载运算符。
https://stackoverflow.com/questions/21739266
复制相似问题