2014年3月15日土曜日

開発環境

C++実践プログラミング (スティーブ オウアルライン (著)、Steve Oualline (原著)、Steve Oualline(原著)、望月 康司(翻訳)、クイープ(翻訳) 、オライリー・ジャパン)のⅢ部(高度な型とクラス)の13章(シンプルなクラス)、13.9(プログラミング実習)、実習 13-3.を解いてみる。

その他参考書籍

実習 13-3.

コード(BBEdit, Emacs)

sample233_3.cpp

#include <iostream>
#include <assert.h>

const int QUEUE_SIZE = 100;     // キューの最大サイズ

class queue {
private:
  int count;
  int data[QUEUE_SIZE];
public:
  explicit queue();
  // queue(const queue& old_queue)
  // ~queue()
  // operator = (const queue& old_queue)
  void put(int item);
  int get();
};

inline queue::queue()
{
  count = 0;
}

inline void queue::put(int item)
{
  assert(count >= 0 && count < QUEUE_SIZE);

  data[count] = item;
  ++count;
}

inline int queue::get()
{
  assert(count >  0 && count < QUEUE_SIZE);

  int t = data[0];
  int i;

  --count;
  for (i = 0; i < count; ++i)
    data[i] = data[i + 1];

  return t;
}

int main()
{
  queue a_queue;
  a_queue.put(1);
  a_queue.put(2);
  a_queue.put(3);

  std::cout << a_queue.get() << '\n';
  std::cout << a_queue.get() << '\n';

  return (0);
}

Makefile

#
# FSFのg++コンパイラ用のMakefile
#
CC=g++
CFLAGS=-g -Wall
all: sample233_3

sample233_3: sample233_3.cpp
 ${CC} ${CFLAGS} -o sample233_3 sample233_3.cpp

clean:
 rm sample233_3

入出力結果(Terminal)

$ make && ./sample233_3
g++ -g -Wall -o sample233_3 sample233_3.cpp
1
2
$

0 コメント:

コメントを投稿