我用谷歌搜索了自己,但我还没有找到我追求的答案!
我使用JNI来实现一些MATLAB生成的代码。因为我需要同时运行它两次,所以我已经实现了这个类,然后初始化了这个类的两个实例。
但是,它们确实包含了很多全局变量初始化,所以当我以这种方式使用它时,两个实例的输出都是完全错误的,我无法解释自己为什么(我用matlab检查过)实现)。然后我将相同的解决方案实现为单独的库,这些库没有错误。
我现在想知道为什么其他实施不起作用。 在C ++中,省略静态并不会自动暗示外部定义,是吗?
两个类实例是否会引用相同的变量,即使它们应该在单独的实例中初始化?
对不起,如果这是一个脑力激荡,而且我要问一些显而易见的事情,我在学士论文的最后一周,我的脑子已经被炒了!
谢谢!
编辑:当然,代码:
基本上看起来像这样:
ClassName* ClassName::p_ClassName //Definition in Header
ClassName::ClassName(){
{
ClassName::~ClassName
{
p_ClassName = NULL;
}
GlobalVariable variableName;
ClassName::funktion(){
variableName = value;
}
答案 0 :(得分:0)
是的,省略static
确实意味着函数或变量是全局的(但不一定是跨库导出的)。