Hablando de la OLP en el salón - página 8

 
Maxim Dmitrievsky:

Probablemente porque apenas entiendo este código :)

Lo siento, soy un programador aficionado... Sólo estoy familiarizado con la POO a un nivel básico

Bueno, no eres el único que no lo entiende, no eres el único... Este estilo - meter lo que no se puede meter en una macro- tiene sus ventajas y sus inconvenientes. Por lo quehe visto, mi colegafxsaber sólo muestra ventajas (flexibilidad, multiplataforma, etc.). Y el hecho de no poder comprobar dicho código en el depurador, ¿qué es? La legibilidad de este estilo es bastante cuestionable. Pero, como dicen, el amo es el amo...

 
Комбинатор:
En C++, la clase y la estructura son las mismas, sólo algunos valores por defecto son diferentes.

sip, ¿cómo se toma un puntero a una estructura?

 
Vasiliy Sokolov:

Así que hay que aprender de los ejemplos adecuados. Y no hay ninguno en SB. Tomemos el ejemplo de CObject: no proporciona control de tipos, no proporciona trabajo a nivel de interfaz con los objetos, pero contiene métodos sin sentido como Save() y Load(), que nunca se sobrescriben en la práctica. Los punteros m_prev y m_next se utilizan en una sola clase CList, pero están presentes como lastre para todas sus clases descendientes. El más útil es el método Comparer(). En realidad, se anula la mayoría de las veces. Pero en la forma normal Comparer() es una interfaz, sería mejor definirlo no en un CObject, sino como una clase separada.

Por favor, explica lo del control, no lo entiendo. ¿Qué tipo de objetos? En general, debería ser una clase ficticia sin campos ni métodos. Su único propósito es proporcionar un ancestro común para otras clases. Es un gran error que los desarrolladores lo hayan llenado de basura.

Allí no debería haber ninguna Comparación. Debería ser una clase ficticia.

 
Alexey Volchanskiy:

Explica lo del control, no lo entiendo. ¿Con qué objetos? Debe ser una clase ficticia sin campos ni métodos. Su único propósito es proporcionar un ancestro común para otras clases. Es un gran error que los desarrolladores lo hayan llenado de basura.

Allí no debería haber ninguna Comparación. Debería ser una clase ficticia.

Esto no es SmallTalk, toda la práctica (y la teoría también) ha demostrado que la salida de un árbol de objetos de Adán es un malvado. Y a ST se le permite hacer eso, está en su propio jugo (su propia máquina virtual).

A juzgar por el calor, ¿se espera un intento de captura para el 8 de marzo? :-) Será una fiesta de mujeres, por supuesto, pero será un pecado no beber.

 
Maxim Kuznetsov:

Esto no es SmallTalk, toda la práctica (y la teoría, también) ha demostrado que derivar el objeto árbol de Adán es un mal cruel. Y a ST se le permite hacer esto, está en su propio jugo (su máquina virtual).

Creo que podemos esperar que el 8 de marzo se intente atrapar y lanzar. :-) Por supuesto, será el día de la mujer, pero será un pecado no beber.


No, no habrá vacaciones, dijo Renat, sin excepciones. Verhttps://www.mql5.com/ru/forum/168361 , alguien lo mencionó. Yo mismo me preguntaba si hay planes para los exeptos o qué? La respuesta fue, por desgracia, no.

Pero en el compilador tenemos una importante casilla de verificación: comprobar los divisores ))))). A la espera de la casilla "check array bounds..." para el 8 de marzo. Y luego veremos otras 25 páginas con casillas similares. No sabemos cómo hacer un extracto, ¿verdad?

SZY: Miró la clase base Object en C#, también mínimo. Imagen de msdn


Почему в MQL5 нет исключений?
Почему в MQL5 нет исключений?
  • 2017.01.29
  • www.mql5.com
Не нужны, надо все условия руками проверять, по старинке оно надежнее Нужны, почему нет - не знаю А что это такое? Хочу посмотреть...
 
Dennis Kirichenko:

Bueno, no eres el único que no entiende, no eres el único... Este estilo - meter lo que no se puede meter en Macros - tiene sus ventajas y desventajas. Por lo quehe visto, mi colegafxsaber sólo demuestra ventajas (flexibilidad, multiplataforma, etc.). Y el hecho de que no se pueda comprobar dicho código en Debugger, ¿cómo es? La legibilidad de este estilo es bastante cuestionable. Pero como se dice, el maestro es el jefe.

¿Por qué atribuir a un ejemplo concreto lo que no contiene?

Maxim Dmitrievsky:

¿Qué modelos se pueden utilizar para aprender a programar exactamente igual? :) se ve muy bien.

Soy autodidacta, por eso no lo sigo en ningún sitio. Tengo un enfoque de Tupolev: "¡Sólo los aviones bonitos vuelan bien!"

 
Maxim Kuznetsov:

Esto no es SmallTalk, toda la práctica (y la teoría, también) ha demostrado que derivar el objeto árbol de Adán es un mal cruel. Y a ST se le permite hacer eso, está en su propio jugo (su propia máquina virtual).

A juzgar por el calor, se espera que el 8 de marzo se intente atrapar y lanzar... :-) Por supuesto, será una fiesta de mujeres, pero es un pecado no tomar una copa.


El objetivo de una clase base vacía es que podamos escribir algo así. Ya te digo que el ejemplo no lleva ninguna utilidad, me lo he inventado sobre la marcha. La cuestión es que podemos lanzar cualquier clase derivada a un CObject*

CObject* objarr[12];

void OnStart()
{
    objarr[0] = new CAccountInfo;
    // еще что-то подобное, кладем в массив указатели на объекты абсолютно разных классов, но с одним предков
    objarr[11] = new CDealInfo;
    // обращаемся и работаем
    CAccountInfo * ai = (CAccountInfo*)objarr[0];
    //
    
    for(int n = 0; n < 12; n++)
        if(CheckPointer(objarr[n]) == POINTER_DYNAMIC)
            delete objarr[n];
       
}

*

 
Alexey Volchanskiy:

sip, ¿cómo se toma un puntero a una estructura?

Sinceramente no entiendo la pregunta, pero de cualquier manera es lo mismo que para la clase
 
Комбинатор:
Sinceramente no entiendo la pregunta, pero en cualquier caso es lo mismo que para la clase

Lo siento mucho, ¿en el contexto de qué idioma está sacando esta conclusión? :-)



 
Комбинатор:
Sinceramente no entiendo la pregunta, pero de cualquier manera es lo mismo que para la clase

class C {};
struct S {};

void OnStart()
{
    C *_c = new C; // так можно
    S *_s = new S; // указатели на структуру не допускаются 
}

Razón de la queja: