From: Leandro Lucarella Date: Tue, 31 May 2005 00:38:17 +0000 (+0000) Subject: Mejoras varias a los ejemplos. X-Git-Tag: svn_import~3 X-Git-Url: https://git.llucax.com/z.facultad/75.31/presentacion.git/commitdiff_plain/a366c4f2ed96126bd20cbc7445492396babc4052 Mejoras varias a los ejemplos. --- diff --git a/ejemplos/exception.d b/ejemplos/exception.d new file mode 100644 index 0000000..19e91f3 --- /dev/null +++ b/ejemplos/exception.d @@ -0,0 +1,18 @@ + +int main() +{ + try + { + //throw new Exception("execpcion"); + assert(0); + } + catch (Exception e) + { + printf("%.*s\n", e.msg); + } + finally + { + printf("finally\n"); + } + return 0; +} diff --git a/ejemplos/nogc.d b/ejemplos/nogc.d index 5df4667..83d3f07 100644 --- a/ejemplos/nogc.d +++ b/ejemplos/nogc.d @@ -3,9 +3,14 @@ import std.c.stdlib; int main() { int* p = cast(int*) malloc(4 * int.sizeof); // Nunca seran recolectados - p[3] = 1; + p[0] = 1; + p[1] = 11; + p[2] = 13; + p[3] = 17; + free(p); // libero + p = cast(int*) malloc(4 * int.sizeof); // No se inicializa for (uint i = 0; i < 4; ++i) printf("p[%d] = %d\n", i, p[i]); - free(p); + free(p); // liberoo se inicializa return 0; } diff --git a/ejemplos/seguridad.d b/ejemplos/seguridad.d index df984f1..d460a9e 100644 --- a/ejemplos/seguridad.d +++ b/ejemplos/seguridad.d @@ -1,23 +1,21 @@ -class C -{ - private int i; -} - -struct S -{ - private int i; -} +import seguridad_mod; int main() { C c = new C; + /* No compila! + c._i = 1; + int j = c._i; + */ printf("c.i = %d\n", c.i); - c.i = 1; + c.i = 2; printf("c.i = %d\n", c.i); S s; + s._i = 1; // ignora seguridad de struct + int j = s._i; // ignora seguridad de struct printf("s.i = %d\n", s.i); - s.i = 1; + s.i = 2; printf("s.i = %d\n", s.i); return 0; } diff --git a/ejemplos/seguridad_mod.d b/ejemplos/seguridad_mod.d new file mode 100644 index 0000000..f948927 --- /dev/null +++ b/ejemplos/seguridad_mod.d @@ -0,0 +1,15 @@ + +class C +{ + private int _i; + int i() { return _i; } + int i(int i) { return _i = i; } +} + +struct S +{ + private int _i; // ignora seguridad de struct + int i() { return _i; } + int i(int i) { return _i = i; } +} + diff --git a/ejemplos/unit_test.d b/ejemplos/unit_test.d index 925e7c6..e8cc917 100644 --- a/ejemplos/unit_test.d +++ b/ejemplos/unit_test.d @@ -10,5 +10,6 @@ class C int main() { + printf("hola\n"); return 0; }