File: example2.e

package info (click to toggle)
smarteiffel 1.1-11
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 12,288 kB
  • ctags: 40,785
  • sloc: ansic: 35,791; lisp: 4,036; sh: 1,783; java: 895; ruby: 613; python: 209; makefile: 115; csh: 78; cpp: 50
file content (73 lines) | stat: -rw-r--r-- 2,178 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
class EXAMPLE2
--
-- How to compile:
--                   g++ -c Foo.cpp
--                   compile -o example2 example2 Foo.o
--
-- As well as:
--                   compile -o example2 example2 Foo.cpp
--

creation make

feature

   make is
      local
         foo_pointer: POINTER;
      do
         foo_pointer := new_foo;
         set_integer(foo_pointer,3);
         io.put_integer(get_integer(foo_pointer));
         io.put_new_line;
         set_real(foo_pointer,3.0);
         io.put_real(get_real(foo_pointer));
         io.put_new_line;
      end;

   new_foo: POINTER is
         -- Creation of a C++ `Foo' object. The file "Foo.h" must be 
	 -- #included and the C++ creation function has no argument.
      external "[
                 C++ [new Foo "Foo.h"] ()
               ]"
      end;

   set_integer(foo_pointer: POINTER; i: INTEGER) is
         -- Calling C++ `set_integer' member function of C++ class `Foo' 
         -- using `foo_pointer' as target. This member procedure as 
         -- an argument (matching with `i') of type EIF_INTEGER (which match 
         -- with INTEGER). The file "Foo.h" must be #included (if not 
         -- yet done).
      external "[
                 C++ [Foo "Foo.h"] (EIF_INTEGER)
               ]"
      end;

   get_integer(foo_pointer: POINTER): INTEGER is
         -- Calling a C++ `get_integer' member function using `foo_pointer' as 
         -- target. The file "Foo.h" must be #included (if not yet done).

      external "[
                 C++ [Foo "Foo.h"] (): int
               ]"
      end;

   set_real(foo_pointer: POINTER; r: REAL) is
         -- Calling `set_real' C++ member procedure using `foo_pointer' as target 
         -- and `r' as argument. The file "Foo.h" must be #included (if not 
         -- yet done).
      external "[
                 C++ [Foo "Foo.h"] (EIF_REAL)
               ]"
      end;

   get_real(foo_pointer: POINTER): REAL is
         -- Calling `get_real' C++ member function using `foo_pointer' as target. 
         -- The file "Foo.h" must be #included (if not yet done).
      external "[
                 C++ [Foo "Foo.h"] (): float
               ]"
      end;

end