gpt4 book ai didi

Java Jni 和 C++

转载 作者:行者123 更新时间:2023-11-28 07:56:10 25 4
gpt4 key购买 nike

我正在学习 JNI 如何从 Java 程序调用 C++ 对象方法。我正在使用 Android NDK/SDK 编写应用程序。我是 JNI 的初学者,我想知道是否支持多态性。也就是说,假设我有一个简单的 C++ 类:

class HeyBoy
{
public:
virtual int getValue()
{
return 10;
}
};

class HeyBoyDerived1 : public HeyBoy
{
public:
int getValue()
{
return 20;
}
}

class HeyBoyDerived2 : public HeyBoy
{
public:
int getValue()
{
return 30;
}
}

在运行时,我希望用户选择要使用的实现(1 或 2),只需按下应用程序界面上的按钮即可。应该创建正确的 C++ 对象。然后,我会放置一个带有“获取值(value)”标签的按钮。按下按钮时,应调用当前所选实现的 getValue() 方法。之后,结果会打印在手机屏幕上。我真的很想看一些代码示例!谢谢。

最佳答案

简短的回答是否定的。 JNI 是一个 C 接口(interface),它不了解 C++、类、继承或多态性。

较长的答案是:是的,C 函数可用于调用所需的构造函数并调用虚方法。

关于Java Jni 和 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com