bool参数错误,给定“false”,但在被调用函数中,参数为“true”

时间:2015-01-15 12:15:16

标签: android c++ android-ndk

我正在使用ndk在android平台和ios平台上编译c ++代码。这是一个类的功能 标题是:

enum FUNCTIONAL_SWITCH_ID{
    FUNCTIONAL_SWITCH_1 = 1,
    FUNCTIONAL_SWITCH_2 = 1 << 1,
    FUNCTIONAL_SWITCH_3 = 1 <<2,
    FUNCTIONAL_SWITCH_MAX = 31,
};
class FunctionalSwitch{
public:
    FunctionalSwitch();
    virtual ~FunctionalSwitch();

public:
    void setFunctionalEnable(bool enable, int functionalID);
    bool isFunctionalEnable(int functionalID);
private:
    int m_ifunctionalBits;
};

.cpp文件是

#include "FunctionalSwitch.h"
FunctionalSwitch::FunctionalSwitch():m_ifunctionalBits(0){

}

FunctionalSwitch::~FunctionalSwitch(){

}

void FunctionalSwitch::setFunctionalEnable(bool enable, int functionalID){
    if (enable) {
            m_ifunctionalBits |= functionalID;
    }else{
        m_ifunctionalBits &= (~functionalID);
    }
}
bool FunctionalSwitch::isFunctionalEnable(int functionalID){
    return m_ifunctionalBits & functionalID;
}

并将该类用作名为Global

的类中的成员
class Global : Base
{
public:
    FunctionalSwitch& getFunctionalSwitch(){return m_oFunctionalSwitch;}
private:
    FunctionalSwitch m_oFunctionalSwitch;

};

以及我调用函数的某个地方(这是一个例子,我项目中的代码更复杂)

Global a;
a.getFunctionalSwitch().setFunctionalEnable(false, FUNCTIONAL_SWITCH_2);

这里是问题,我给出的bool参数是&#34; false&#34;,但函数得到的是&#34; true&#34;,我添加了一些日志,它是&#34;真&#34;在日志中。 任何想法,以帮助我找出发生了什么。 此代码适用于xcode。但在ndk上有问题

0 个答案:

没有答案