La clase base no tiene acceso a los campos descendientes.
Sí, pero lo derroté de esta manera:
class C_AO_Agent
{
public:
double c;
double f;
};
class C_AO
{
public:
double cB[];
C_AO_Agent *a;
virtualvoid Init() { }
};
class C_Agent : public C_AO_Agent
{
public:
double g;
class ad
{
};
};
class C_P : public C_AO
{
public:
void Init()
{
a = new C_Agent;
C_Agent *agent = (C_Agent*)a; // Приведение типов
agent.f = 5;
agent.g = 7; //теперь есть доступ к g!!!
agent.c = 8;
}
};
voidOnStart()
{
C_AO *ao;
ao = new C_P;
ao.Init();
//тут нам нужен доступ только к f и cPrint (ao.a.f);
Print (ao.a.c);
// Удаление объектовdelete ((C_Agent*)ao.a);
delete ao;
}
esta es una versión funcional de lo que se requería.
Lo sentimos, tal vez porque google auto traducir
La pregunta de la imagen es:

código:La pregunta de la imagen es:
código:
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Características del lenguaje mql5, sutilezas y técnicas de trabajo
Andrey Dik, 2024.02.16 06:05
La clase base no tiene acceso a los campos de los descendientes.
La clase base no tiene acceso a los campos descendientes.
esta es una versión funcional de lo que se requería.
sí, pero derrotado de esta manera:
es una versión de trabajo de lo que se requería.
Es muy buggy.
Muéstreme un ejemplo
Muestra un ejemplo, y cualquiera puede ofender a un artista).
¿Ejemplo de qué?
La tarea era obtener acceso a un objeto, no organizar el borrado correcto de objetos. Borrar siempre es más fácil que crear))