Я пытаюсь изменить переменную-член внутри метода класса:Переменная не изменяется при его набор из функции
Декларация класса:
class BypassButton{
public:
BypassButton();
BypassButton(double x, double y);
//methods
void setup();
void update();
void draw();
double getX();
double getY();
void toggle();
bool bypassed;
double x, y, radius;
};
переменная устанавливается в ч файл следующим образом:
bool bypassed;
, а затем установить в конструкторе следующим образом:
BypassButton::BypassButton(double x, double y){
this->x = x;
this->y = y;
bypassed = false;
}
Затем я создал функцию, которая переключает эту переменную:
void BypassButton::toggle(){
bypassed = !bypassed;
}
Когда я проверить значение переменной внутри функции до и после того, как я могу изменить его, похоже, все в порядке.
Но, когда я проверяю значение вне функции, он никогда не изменяется. Я попытался использовать this->
, но он не работает.
Это все часть педальной платы, поэтому у меня есть класс Pedal с экземпляром BypassButton. Затем я создаю вектор Pedal плата внутри моего основного класса, и вызвать переключатель следующим образом:
void ofApp::mouseReleased(int x, int y, int button){
for(int i = 0; i < numPedals; i++){
BypassButton bb = pedals.at(i).getBypassButton();
if(x > (bb.x - bb.radius) && x < (bb.x + bb.radius) && y > (bb.y - bb.radius) && y < (bb.y + bb.radius)){
bb.toggle();
}
}
}
Есть идеи?
[MCVE] (http://stackoverflow.com/help/mcve), пожалуйста, как обычно. –
Можете ли вы опубликовать объявление класса (или его важные бит)? – slugonamission
Да, одна секунда. – nevos