Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Surgiu uma pergunta:
Há uma classe "Programa" que usa as classes"Nova Barra" e "Gerenciador de Dados". A classe "Nova Barra", por sua vez, também usa a classe "Gerenciador de Dados". Os getters e setters públicos são implementados na classe "Data Manager".
Pergunta: Quais são as opções para a inicialização do programa da classe "Nova Barra" para especificar as propriedades "símbolo" e "prazo" da classe "Gerenciador de Dados"? Eu não gostaria de ter getters e setters públicos na classe New Bar para acessar os campos de gerenciamento de dados. E gostaríamos de manter o gerente de dados privado.
Em outras palavras: A aplicação pode utilizar várias classes que utilizam o gerenciador de dados. Durante a inicialização do programa, todos os campos de gerência de todas as classes devem ser inicializados com valores requeridos. Mas eu não quero criar getters em todas as classes para acessar os campos do gerenciador de dados. Então...
De acordo com sua descrição, faz sentido separar essas configurações em uma entidade separada, a mesma para todos os gerentes e não apenas
Sim, parece que você precisa herdar classes que precisam de um gerente de uma classe de base que tenha getters para os campos de gerente. Obrigado.
Surgiu uma pergunta:
Há uma classe "Programa" que usa as classes"Nova Barra" e "Gerenciador de Dados". A classe "Nova Barra", por sua vez, também usa a classe "Gerenciador de Dados". Os getters e setters públicos são implementados na classe "Data Manager".
Pergunta: Quais são as opções para a inicialização do programa da classe "Nova Barra" para especificar as propriedades "símbolo" e "prazo" da classe "Gerenciador de Dados"? Eu não gostaria de ter getters e setters públicos na classe New Bar para acessar os campos de gerenciamento de dados. E gostaríamos de manter o gerente de dados privado.
Em outras palavras: A aplicação pode utilizar várias classes que utilizam o gerenciador de dados. Durante a inicialização do programa, todos os campos de gerência de todas as classes devem ser inicializados com valores requeridos. Mas eu não quero criar getters em todas as classes para acessar os campos do gerenciador de dados. Então...
É assim que eu faço.
É mais ou menos assim que eu o faço.
Obrigado pelo exemplo, é um pouco complicado até agora, mas em geral a idéia é clara. Surge imediatamente uma pergunta: ok, se "um nível de nidificação" - aqui está claro, mas se haverá vários níveis de nidificação?
Adicionado:
Também não está claro porque o campo cIsDelData? Afinal de contas, você pode simplesmente verificar m_data contra POINTER_DINAMIC no destruidor. Ou eu estou errado?
Se você fizer herança, você terá muitos métodos desnecessários. E o objeto deve ser privado. Portanto, você não vai acreditar, mas a maneira mais fácil é definir os responsáveis por todas as classes que utilizam o gerenciador de dados.
Se todos os gerentes de dados trabalham com os mesmos parâmetros, é melhor não criar objetos, mas passar um ponteiro para um gerente de dados. Neste caso, apenas um setter é necessário para passar o ponteiro.
Obrigado pelo exemplo, é um pouco complicado até agora, mas em geral a idéia é clara. Surge imediatamente uma pergunta: ok, se "um nível de nidificação" - aqui está claro, mas se haverá vários níveis de nidificação?
Adicionado:
Também não está claro por que o campo cIsDelData? Afinal de contas, você pode simplesmente verificar m_data contra POINTER_DINAMIC no destruidor. Ou eu estou errado?
Obrigado, vou pensar sobre isso.
Estou fazendo isso mais ou menos assim.
o que esta linhaCDataManager* m_data significa;
Caras, eu quero fazer uma coisa assim. Eu tenho uma macro.
Como resultado, eu terei 2 macrosfoor efoor1.
o que esta linhaCDataManager* m_data significa;
Caras, eu quero fazer uma coisa assim. Eu tenho uma macro.
Como resultado, eu terei 2 macrosfoor efoor1.
Um ponteiro para um objeto.
Sem ofensa, mas é muito cedo para você lidar com tais macros. Antes de mais nada, entenda porque fiz isto: