A classe base não tem acesso aos campos descendentes.
Sim, mas eu o derrotei desta forma:
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 é uma versão funcional do que era necessário.
Desculpe, talvez seja por causa da tradução automática do Google
A pergunta na imagem é:

código:A pergunta na imagem é:
código:
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.
Recursos da linguagem mql5, sutilezas e técnicas de trabalho
Andrey Dik, 2024.02.16 06:05
A classe base não tem acesso aos campos dos descendentes.
A classe base não tem acesso aos campos descendentes.
Esta é uma versão funcional do que era necessário.
Sim, mas derrotado desta forma:
é uma versão funcional do que era necessário.
Isso é muito problemático.
Mostre-me um exemplo
Mostre um exemplo, e qualquer um pode ofender um artista).
Exemplo de quê?
A tarefa era obter acesso a um objeto, não organizar a exclusão correta de objetos. Excluir é sempre mais fácil do que criar))