如何更改私有bool值c ++

时间:2014-09-04 07:21:31

标签: c++ boolean

我正在创建一个模拟门的程序。 我有这个布尔值这个问题我设置为私有但我想在程序启动时将其值更改为false。 也是我瑞典的原因我使用klar = done和val = choice这个词,我的坏习惯。

//Main.cpp contains the user menu for the "door" controls
#include <iostream>
#include "Door2.h"
using namespace std;

int main(){

    bool done = false;
    int val,klar;
    Door2* d= new Door2();
    while(done == false){

        cout << "Do you want to?" << endl;
        cout << "1. Open the door?" << endl;
        cout << "2. Close the door?" << endl;
        cout << "3. Lock the door?" << endl;
        cout << "4. Unlock the door?" << endl;

        cin >> val;

        if (val == 1){
            d->open();
        }
        if (val == 2){
            d->close();
        }
        if (val == 3){
            d->lock();
        }
        if (val == 4){
            d->unlock();
        }

        cout << "Är du klar?" << endl << "1. Ja!" << endl << "2.Nej!" << endl;
        cin >> klar;

        if(klar == 1){
            done = true;
        }
    }

    return 0;
}

现在在头文件中我有两个布尔值,在程序启动时有没有办法将它们的值设置为false?

#pragma once

class Door2{

private:
    bool Open;
    bool Lock;
public:
    void open();
    void close();
    void lock();
    void unlock();
};

和Door.cpp

//Door.cpp The file that checks if the "door" is closed open locked unlocked etc.
#include "Door2.h" 
#include <iostream>

using namespace std;

void Door2::open(){
    if (Open == true){
         cout << "The door is already open!" << endl;
    }else{
    Open = false;
    cout << "The door is open!" << endl;
}
}
void Door2::close(){
    if (Open == false){
        cout << "The door is already closed!" << endl;
    }else{
        Open = true;
        cout << "The door is closed!" << endl;
    }
}
void Door2::lock(){
    if (Lock == true){
         cout << "The door is already locked!" << endl;
    }else{
        Lock = false;
        cout << "The door is locked!" << endl; 
    }

}

void Door2::unlock(){

    if(Lock== false){
        cout << "The door is already unlocked!" << endl;
    }else{
        Lock = true;
        cout << "The door is unlocked!" << endl;
    }

}

编辑:我是c +中的新手,是的,我试图寻找答案,却找不到任何答案。

4 个答案:

答案 0 :(得分:3)

使用带有初始化列表的构造函数,将标记设置为false

Door2() : Open(false), Lock(false) { }

注意:

您应该将您的类型放在专用名称空间中,并避免将其置于全局名称空间中。

答案 1 :(得分:2)

您不会在程序启动时设置这些变量,但是在构造Door对象时:

·H

class Door {
   // ....
   Door(); // Constructor

的.cpp

Door::Door() : open (false), Lock(false) { }

答案 2 :(得分:0)

使用构造函数        门()        {         开放= FALSE;         锁= FALSE;         }

答案 3 :(得分:0)

您可以使用构造函数执行此操作,这将在声明门时设置值。 目前我看到你正在使用默认构造函数,但你可以像刚刚出现的答案一样替换它。 无论哪种方式,我建议再次阅读类/构造函数教程。