Eiffel 引介 Part IV (1)

Eiffel Introduction

Eiffel 引介

 

Rensselaer, 2000

James C. McKim, Jr, Rensselaer at Hartford

 K ][ N G of @ R K 译

 

4. Hello World 以及其它惯用的示例

4.1 Hello(示例)

class HELLO

creation make

feature

    make is

      -- say hello to the significant people in the world.

    do

        io.putstring( “Hello, OOPers%N” )

    end

end

 

变量 io 是一个引用,指向一个型别为 STANDARD_FILES 的对象。后面我们将看到类别 HELLO 如何访问这个变量。

 

4.2 Eiffel 系统[译注3/OOSC2e,p196]

 

l         代码文件的名称通常应该与该代码所包含之类别的名称相同,并以 .e 作为扩展名。

l         因此,类别 HELLO 的代码应该写在名为 hello.e 的文件里。

l         每个不同的系统应该处在不同的目录中。

下面给出了 hello stack 两个系统的示例。

 

4.3 STACK class

class MY_STACK[ G ]

  creation make

  feature

    capacity, depth : INTEGER

    push( x : G ) is

      -- Make x the top item.

      require

        not_full: depth < capacity

      do

        depth := depth + 1

        s.put( x, depth )

      ensure

        depth = old depth + 1

        top = x

    end -- push

    pop is

      -- Remove the top item.

      require

        not_empty: depth > 0

      do

        depth := depth - 1

      ensure

        depth = old depth - 1

        -- top = the item remaining on the stack (if any)

        -- that has been there the least amount of time.

    end -- pop

    top : G is

      -- The item that has been on the stack for the least

      -- amount of time.

      require

        not_empty: depth > 0

      do

        Result := s.item( depth )

    end -- top

  feature{NONE}

    s : ARRAY[ G ]

    make( c : INTEGER ) is

    -- Initialize an empty stack with capacity c.

      require

        c > 0

      do

        capacity := c

        !!s.make( 1, capacity )

      ensure

        capacity = c

        depth = 0

    end -- make

end -- MY_STACK

 

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

kingofark

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值