SingleLinkedStack

SingleLinkedStack

GearsOSのInterfaceを使ってStackを定義しました。

今回はこのInterfaceの具体的な実装であるSingleLinkedStackを見ていきます。

# SingleLinkedStackのヘッダファイル

1
2
3
typedef struct SingleLinkedStack<Type, Isa> impl Stack {
  struct Element* top;
} SingleLinkedStack;
  • SingleLinkedStackは struct Element* topを持っている
    • これはインスタンス変数に該当する概念です
  • SingleLinkedStackは独自のprivete メソッドを持たない
    • その為、ヘッダファイルにCodeGearが登録されていない

# SingleLinkedStack.cbc

  • SingleLinkedStack.hでデータ構造を定義しましたが、ふるまいの実装はまだ行っていません。
  • 今現在はすでに実装されたものが存在しますが、ここでは1から実装を書いてみましょう

# 雛形生成

  • trans_impl.plに実装側のヘッダファイルを通すことで生成できます
    • perl trans_impl.pl SingleLinkedStack.h
  • -w オプションを付けることで、同名の.cbcファイルが生成されます
    • perl trans_impl.pl -w SingleLinkedStack.h
  • -o オプションを付けることで、生成するファイル名を指定できます
    • perl trans_impl.pl -o single_linked_stack.cbc SingleLinkedStack.h

# 生成されたファイル

  • 特にオプションを指定しないと標準出力に出力されます
    • perl trans_impl.pl SingleLinkedStack.h | pbcopy
      • こうしておくとクリップボードにコピーされて便利
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy