Java 不同类中同名全局变量的双重初始化
我已经在谷歌上搜索过了,但是我还没有找到我想要的答案 我使用JNI实现了一些MATLAB生成的代码。因为我需要同时运行两次,所以我实现了这个基于类的类,然后初始化了这个类的两个实例 但是,它们确实包含很多全局变量初始化,因此当我以这种方式使用它时,两个实例的输出都是完全错误的,我无法解释原因(我使用matlab实现进行了检查) 然后,我实现了与独立库相同的解决方案,这些库可以正常工作 我现在想知道为什么另一个实现不起作用。 在C++中,省略静态并不意味着外部定义,不是吗? 两个类实例引用的变量是否相同,即使它们应该在单独的实例中初始化 我很抱歉,如果这是一个愚蠢的问题,我问的是一个明显的问题,我在我的学士学位论文的最后一周,我的大脑被炸了 谢谢 编辑:当然,代码: 它基本上是这样的:Java 不同类中同名全局变量的双重初始化,java,android,c++,matlab,java-native-interface,Java,Android,C++,Matlab,Java Native Interface,我已经在谷歌上搜索过了,但是我还没有找到我想要的答案 我使用JNI实现了一些MATLAB生成的代码。因为我需要同时运行两次,所以我实现了这个基于类的类,然后初始化了这个类的两个实例 但是,它们确实包含很多全局变量初始化,因此当我以这种方式使用它时,两个实例的输出都是完全错误的,我无法解释原因(我使用matlab实现进行了检查) 然后,我实现了与独立库相同的解决方案,这些库可以正常工作 我现在想知道为什么另一个实现不起作用。 在C++中,省略静态并不意味着外部定义,不是吗? 两个类实例引用的变量是
ClassName* ClassName::p_ClassName //Definition in Header
ClassName::ClassName(){
{
ClassName::~ClassName
{
p_ClassName = NULL;
}
GlobalVariable variableName;
ClassName::funktion(){
variableName = value;
}
是的,省略
static
表示函数或变量是全局的(但不一定跨库导出)
例如,请参阅发布一些代码将有助于澄清您的问题-如何声明变量、如何初始化和使用变量。是的,您是对的!编辑“两个类实例引用相同的变量吗,即使它们应该在单独的实例中初始化?”拥有全局变量意味着它不是每个类实例单独的,而是在库中共享的。如果你想拥有每个对象的变量,那么让它们成为类的非静态成员。非常感谢!这是我所期望的,我需要确认!好的,我只能发现C是真的,没有发现任何关于C++的真实性,但是如果是这样的话,我肯定怀疑了!