可能是什麼,這種情況是不正確的,否則被執行的原因OMNET ++:C++簡單的條件
IPassiveQueue *queueModule = nullptr;
queueModule = nullptr;
if (queueModule == nullptr) {...}
else {...}
[EDIT1]基於答案下面我在這裏增加的背後,爲什麼我的原因試圖強制條件爲真
下面的代碼始終檢查第一個條件並執行其他。它在初始化所以它不依賴於任何先前的執行類和queueModule件類定義設置爲保護成員
class INET_API EtherMACBase : public MACBase
{virtual void initializeQueueModule();
IPassiveQueue *queueModule = nullptr;
...}
void EtherMACBase::initializeQueueModule()
{
queueModule = nullptr;
if (par("queueModule").stringValue()[0]) {...}
else {...}
}
而在這種情況下,雖然參數設置爲相同
條件爲真class INET_API PPP : public MACBase
{
protected:
IPassiveQueue *queueModule = nullptr;
virtual void initialize(int stage) override;
...
}
void PPP::initialize(int stage)
{
queueModule = nullptr;
if (par("queueModule").stringValue()[0]) {...}
else {...}
}
[EDIT2]This picture for Debugging asked by Jerzy D.
請提供[mcve]。錯誤不能只在您發佈的代碼位中。 – Angew
可能你忘了重建或部署與代碼對應的新鮮二進制文件。 – nikitoz
目前沒有理由,如果'else'塊可以在這裏執行,我不認爲任何人會使用C++。 – George