⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flags.cpp

📁 Thinking in C++ 2nd edition source code which are all the cores of the book Thinking in C++ second e
💻 CPP
字号:
//: C07:Flags.cpp
// From Thinking in C++, 2nd Edition
// at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// List of true/false flags
#include <cstdio>
#include <cstring>
#include "../require.h"
using namespace std;

#define FSIZE 100
#define TRUE 1
#define FALSE 0

class Flags {
  unsigned char f[FSIZE];
public:
  Flags();
  void set(int i);
  void clear(int i);
  int read(int i);
  int size();
};

Flags::Flags() {
  memset(f, FALSE, FSIZE);
}

void Flags::set(int i) {
  require(i >= 0 && i < FSIZE);
  f[i] = TRUE;
}

void Flags::clear(int i) {
  require(i >= 0 && i < FSIZE);
  f[i] = FALSE;
}

int Flags::read(int i) {
  require(i >= 0 && i < FSIZE);
  return f[i];
}

int Flags::size() { return FSIZE; }

int main() {
  Flags fl;
  for(int i = 0; i < fl.size(); i++)
    if(i % 3 == 0) fl.set(i);
  for(int j = 0; j < fl.size(); j++)
    printf("fl.read(%d)= %d\n", j, fl.read(j));
} ///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -