1 using System;
2
3 public interface Fooable
4 {
5 void Foo();
6 }
7
8 public class Fooer : Fooable
9 {
10 public Fooer() : foo("foo")
11 {
12 }
13 public void Foo()
14 {
15 Console.Out() << foo << endl();
16 }
17 private string foo;
18 }
19
20 void main()
21 {
22 Fooer fooer;
23 Fooable fooable = fooer;
24 fooable.Foo();
25
26 UniquePtr<Fooer> fooer2(new Fooer());
27 Fooer* fooerPtr = fooer2.Get();
28 Fooable fooable2 = *fooerPtr;
29 fooable2.Foo();
30 }