[英]Dual initialization of same name global variable in different classes
我用這個在谷歌上搜索死了,但是我還沒有找到我想要的答案!
我使用JNI實現了一些MATLAB生成的代碼。 因為我需要同時運行兩次,所以我基於該類實現了該類,然后初始化了該類的兩個實例。
但是,它們確實包含許多全局變量初始化,因此當我以這種方式使用它時,兩個實例的輸出都完全是錯誤的,並且我無法解釋自己的原因(我檢查了matlab的實現)。
然后,我實現了與單獨的庫相同的解決方案,該庫可以正常工作。
我現在想知道為什么其他實現不起作用。 在C ++中,省略static不會自動暗示一個外部定義,不是嗎?
即使兩個類實例都應該在單獨的實例中初始化,它們是否也會引用相同的變量?
抱歉,這是不是讓我感到困惑,我想問一個明顯的問題,我在我的學士學位論文的最后一周,我的大腦被炸了!
謝謝!
編輯:當然,代碼:
基本上看起來像這樣:
ClassName* ClassName::p_ClassName //Definition in Header
ClassName::ClassName(){
{
ClassName::~ClassName
{
p_ClassName = NULL;
}
GlobalVariable variableName;
ClassName::funktion(){
variableName = value;
}
是的,忽略static
確實意味着函數或變量是全局的(但不一定跨庫導出)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.