维护C++对象,使用依赖于UI的方法
Maintain C++ Object, using its method depending on UI
我有一个问题需要解决:
我有一个带有本机方法的java,它创建一个对象并利用该对象的方法。这是我的java代码:我有一个名为IssmJni的java文件,它包含一个本地方法:
public static native long fac(long n);
static {
System.loadLibrary("FacLib");
}
public static long facIterative(long n)
{
return fac(n);
在我的主课上,我有这个:
long result = IssmJni.facIterative(Long.parseLong(input));
System.out.println(result);
这是我的C++代码:主文件:
static jlong factorial(JNIEnv *env, jclass clazz, jlong n)
{
fac *f = new fac();
jlong result = (jlong) (f->factorial(n));
delete(f);
return (jlong) result;
}
头文件:
class fac
{
public:
long factorial(long n);
};
fac.cpp:
#include "com_lan_factorial_FacLib.h"
#include "fac.h"
long fac::factorial(long n)
{
long f = 1;
long i;
for(i = 1; i <= n; i++)
{
f *= i;
}
return f;
}
一切都很好,所以UI将提供一个称为C++代码的数字,并生成一个新的对象fac,并在该类fac中使用factorial方法。通过这条线路
fac*f=新fac();jlong结果=(jlong)(f->阶乘(n));
我想要的是保持相同的对象fac,但使用不同输入的阶乘方法。我尽量远离pthread,因为它太复杂了。有没有一种方法可以让我创建另一个java线程,并在我的应用程序的整个过程中保持这个对象的活力,并且每当我有新的用户输入时都使用这个阶乘。然后在应用程序死后处理掉这个对象?
总之,我想保留对象fac的一个实例,并多次使用阶乘方法。不做原生pthread有可能吗?感谢
这就是我的想法。
static fac* pfac = NULL;
namespace com_lan_factorial
{
static jlong factorial(JNIEnv *env, jclass clazz, jlong n)
{
pfac = new fac();
jlong result = (jlong) (pfac->factorial(n));
return (jlong) result;
}
static jlong factorial_ten(JNIEnv *env, jclass clazz)
{
jlong result = (jlong) (pfac->factorial(3));
return (jlong) result;
}
所以我创建了一个名为pfac的指针,在第一次运行时,pfac将被分配给一个新对象pfac=new fac();在第二次运行时,我只是重用了pfac指针并调用了factorial函数。这完全有效,但我不确定这是用2个阶乘方法创建2个fac对象,还是只使用1个fac方法和相同的阶乘方法。有人能核实一下吗。感谢
相关文章:
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 为什么内存屏障依赖于变量?
- 反转依赖于 end() 的迭代器
- 编译依赖于 QTCore 库的 WASM
- 如何添加依赖于类本身的模板成员变量
- 初始化依赖于子类的继承类的常量类成员
- Makefile 创建两个库 - 一个依赖于另一个
- 对于BTreeMap和其他依赖于Ord的东西,是否有等效于C++比较器对象?
- 类成员函数参数列表是否可以依赖于模板参数?
- 依赖于类成员属性的类实例成员
- 如何定义依赖于参数包转换的函数的返回类型
- 依赖于模板的错误
- 依赖于特定类类型的C++模板方法
- FBString 的小字符串优化是否依赖于未定义的行为?
- CMake:如何在Visual Studio环境中将依赖于模式的编译标志传递给nvcc
- C++ 使函数调用依赖于模板参数
- 如何初始化依赖于先前条目的可变参数模板?
- cmake:构建依赖于非源文件.Qt帮助生成
- 维护C++对象,使用依赖于UI的方法
- 用户界面-是否存在用于C++的跨平台GUI库(具有依赖于平台的UI和基于脚本的布局)