File: example1.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 (54 lines) | stat: -rw-r--r-- 1,510 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
class EXAMPLE1
--
-- How to compile :
--                   g++ -c Foo.cpp
--                   g++ -c Bar.cpp
--                   compile -o example1 example1 Foo.o Bar.o
--
-- As well as :
--                   compile -o example1 example1 Foo.cpp Bar.cpp
--
creation make

feature

   make is
      local
         foo_pointer, bar_pointer: POINTER;
         c: CHARACTER;
      do
         foo_pointer := new_foo;
         bar_pointer := new_bar('x');
         c := get_character(bar_pointer);
         io.put_character(c);
         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;

   new_bar(c: CHARACTER): POINTER is
         -- Creation of a C++ `Bar' object. The file "Bar.h" must be
	 -- #included and the C++ creation function has one argument
	 -- (matching with `c') of type EIF_CHARACTER (matching with 
	 -- CHARACTER). 
      external "[
                 C++ [new Bar "Bar.h"] (EIF_CHARACTER)
               ]"
      end;

   get_character(bar_pointer: POINTER): CHARACTER is
         -- Calling C++ `get_character' member function without argument using 
         -- `bar_pointer' as target of the C++ call. The file "Bar.h" must be 
         -- #included (if not yet done).
      external "[
                 C++ [Bar "Bar.h"] (): char
               ]"
      end;

end