#include <iostream>
#include<map>
#include<string>
#include<vector>
class ColorBlind
{
public:
inline static bool toggleColorBlind = false;
//^^^^^^ ^^^^^^------------------------------------->note inline and static used here
};
class Menu
{ public:
//method that toggles
void invertColorBlind() const
{
ColorBlind::toggleColorBlind = !ColorBlind::toggleColorBlind;
std::cout<<"changed to: "<<ColorBlind::toggleColorBlind<<std::endl;
}
};
class Game
{
public:
void invertColorBlind() const
{
ColorBlind::toggleColorBlind = !ColorBlind::toggleColorBlind;
std::cout<<"changed to: "<<ColorBlind::toggleColorBlind<<std::endl;
}
};
int main()
{
std::cout<<"Initially toggleColorBlind is: "<<ColorBlind::toggleColorBlind<<std::endl; //prints 0
Menu m;
//lets change toggleColorBlind using an instance of Menu
m.invertColorBlind(); //prints 1
//toggle again
m.invertColorBlind(); //prints 0
Game g;
//lets change toggleColorBlind using an instance of Game
g.invertColorBlind(); //print 1
}