Ainda assim, não entendo o que "Objeto" está no OOP.
Diz: "Um objeto é uma instância de uma classe". Uma classe pode ter muitas instâncias. Mas, estas instâncias são apenas referências à classe. Uma classe contém campos. Os campos sãoas propriedades do objeto. Os métodos são elementos do motor que lidam com os valores de propriedades específicas do objeto.
No meu entendimento, um objeto é um conjunto nomeado (ou numerado) de propriedades. Os valores de propriedade são tratados por vários mecanismos de grandes blocos. É basicamente a mesma coisa. Somente ela é escrita de maneira diferente. No OOP, a funcionalidade é fragmentada por causa de seu encapsulamento. No meu caso, é vice-versa - fusão de funcionalidades.
Se transformarmos a questão em uma área gráfica, a classe CButton é a mesma do meu elemento Button. Na minha implementação, são três objetos no núcleo, cada um com uma série de propriedades. Na classe, é também uma lista de propriedades (campos), métodos do botão (não tenho métodos pertencentes separadamente ao botão). A funcionalidade dos botões está dentro de blocos funcionais globais). Nesses blocos, o botão é tratado como qualquer elemento, mas em certos lugares ele tem suas condições pessoais e manipuladores. No OOP, a mesma funcionalidade de botão é encapsulada em uma classe acessada através de instâncias.
George, em cada biblioteca, em cada solução, há um conceito. Se eu pegar o conceito de outra pessoa e tentar desenvolver o meu com base nele, posso ter uma quebra de conceito, porque um sistema construído sobre dois ou mais conceitos não pode ser estável. Portanto, coisas inovadoras têm que ser desenvolvidas por você mesmo e do zero. Para não lutar contra os erros "genéricos" e as inconsistências dos outros autores.
Peter, você está argumentando em vão. É impossível provar nada. Também não entendo esta abordagem de programação quando, em vez de usar _Symbol, sugerem conectar a biblioteca CSymbolInfo e escrever objeto.Name().
Eu não entendo o uso de tais métodos, por exemplo
//+------------------------------------------------------------------+//| Set the property value "SYMBOL_SELECT" |//+------------------------------------------------------------------+bool CSymbolInfo::Select(constboolselect)
{
return(SymbolSelect(m_name,select));
}
Qual é a dificuldade em escrever
SymbolSelect("Нужный символ", включить или выключить);
E em ambos os casos, apenas uma linha de código.
Por outro lado, Artyom me mostrou possibilidades OOP, nas quais eu me perdi, não entendi nada e não uso
Aqui está outra maneira de explicar isso. Normalmente ninguém explica dessa forma.
Todos os programadores sabem o que é int x, por exemplo;
Agora vamos imaginar que a palavra int é como o nome de uma classe. O que ela descreve?
1. um número inteiro
2. Ocupa 4 bytes em memória
3. toma valores +- dentro de alguns limites. (isso é o suficiente);
E quando escrevemos int x; então declaramos um objeto x, tipo int . x já ocupa fisicamente um campo de 4 bytes na RAM.
Obrigado. Neste caso - uma classe é uma entidade encapsulada, um recipiente que é essencialmente um Objeto em si mesmo, em uma relação hierárquica com outras classes-objeto. Uma classe descreve sua entidade através de propriedades (campos) e métodos (funcionalidade encapsulada), separados da funcionalidade de outros objetos.
Peter, você está argumentando em vão. É impossível provar nada. Também não entendo esta abordagem de programação quando em vez de usar _Symbol eles sugerem conectar a biblioteca CSymbolInfo e escrever objeto.Name()
Eu não entendo o uso de tais métodos, por exemplo
Qual é a dificuldade em escrever
Em ambos os casos, há apenas uma linha de código.
Por outro lado, Artyom me mostrou possibilidades OOP, nas quais eu me perdi, não entendi nada e não uso
Nada :)) Tentando entender o conceito de OOP para encontrar diferenças e semelhanças com meu conceito. Acho que isso enriquecerá meu conhecimento)).
Реter Konow: Nesta variante de sentido, a Classe é um armazém de ferramentas, materiais, matérias primas e máquinas. Hierarquia das classes herdadas - como as oficinas de uma "fábrica".
Peter, por que você gostaria de entrar em tais sutilezas?
Uma classe é uma descrição de um objeto, suas propriedades e métodos para definir e acessar essas propriedades.
Um objeto é quando declaramos uma variável do tipo classe, ou criamos um novo objeto dessa classe utilizando um novo operador.
Por exemplo, esta é uma classe:
//+------------------------------------------------------------------+class CClass
{
//--- Приватные члены класса. Доступны только в объекте этого классаprivate:
int m_type; // Тип объекта//--- Защищённые члены класса. Доступны в объекте этого класса и его наследникахprotected:
string m_name; // Имя объекта//--- Публичные члены класса. Доступны вездеpublic:
void SetType(constint type) { this.m_type=type; }
int GetType(void) const { returnthis.m_type; }
void SetName(conststring name) { this.m_name=name; }
string GetName(void) const { returnthis.m_name; }
};
//+------------------------------------------------------------------+
Tem apenas dois membros de classe - tipo e nome. Estas são suas propriedades. E ainda não é um objeto. É um plano, uma planta, um plano... do objeto futuro.
Nós criamos um objeto:
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объект
Nós criamos um objeto e um ponteiro para ele:
CClass *class_ptr = new CClass(); // Оператором new создали новый объект класса CClass, и в переменную class_ptr получили на него указатель. // Теперь в памяти сидит объект CClass, и получить к нему доступ можно по этому указателю, // и по этому же указателю обязательно удалить объект по завершении работы оператором delete
Como eu disse antes, a visão OOP do Objeto é mais ampla do que meu conceito. Eu só lidava com objetos gráficos, com um conjunto monótono de propriedades. O OOP oferece uma visão de qualquer entidade através do conceito de Objeto. Isto é, naturalmente, ótimo, porque qualquer entidade é um Objeto. É claro que sou contra o encapsulamento excessivo e a fragmentação da funcionalidade dos objetos. Por quê? Sim, porque torna os mecanismos menos eficientes. Mas, a própria possibilidade de olhar para o Objeto num contexto mais amplo me atrai.
George, em cada biblioteca, em cada solução, há um conceito. Se eu pegar o conceito de outra pessoa e tentar desenvolver o meu com base nele, posso ter uma quebra de conceito, porque um sistema construído sobre dois ou mais conceitos não pode ser estável. Portanto, coisas inovadoras têm que ser desenvolvidas por você mesmo e do zero. Para não lutar contra os erros "genéricos" e as inconsistências dos outros autores.
Há apenas sete (!) notas. E quanta música está neles? E nenhum compositor pensa em colapso. Ele apenas escreve música que toca na alma. Ele não inventa outra coisa, ele usa essas sete notas.
Peter, por que você gostaria de entrar em tais sutilezas?
Uma classe é uma descrição de um objeto, suas propriedades e métodos para definir e acessar essas propriedades.
Um objeto é quando declaramos uma variável do tipo classe, ou criamos um novo objeto dessa classe utilizando um novo operador.
Por exemplo, esta é uma classe:
Tem apenas dois membros de classe - tipo e nome. Estas são suas propriedades. E ainda não é um objeto. É um plano, um projeto, um plano... de um objeto futuro.
Nós criamos um objeto:
Nós criamos um objeto e um ponteiro para ele:
Uma classe é uma descrição de um objeto. Bom. Contém as propriedades e a funcionalidade do objeto. Ok. Tudo isso é ordenado, aberto ou protegido.
Então o próprio OBJETO está fora de cogitação. É no contexto da classe. No contexto de seu nome e descrição. Isto é, no OOP, o Objeto, é exatamente um conjunto de atributos (não apenas propriedades, mas também elementos funcionais - métodos), mas mais ordenados e encapsulados do que eu tenho. (Faz mais sentido para mim).
o próprio conceito de OOP implica simplesmente não escrever - você não precisa saber a implementação do método (em seu exemplo return(SymbolSelect(m_name,select))
Imagine que, ao invés desta linha:
SymbolSelect("Нужный символ", включить или выключить);
você tem que fazer muitas consultas, várias verificações, etc. - Isso levará tempo para escrever sua própria biblioteca e estudar o material
Suponha que sua tarefa seja usar apenas um método de solução pronta na forma de uma classe - você cria uma instância da classe (objeto) e usa o método Select(const bool select) pronto
Se você não vai realizar tais operações, liberar memória = apagar o objeto
Suponha que sua tarefa seja exibir um botão, apertando-o, você ativa/desativa o símbolo no relógio do mercado ---> crie sua própria classe e encapsule-a com uma classe de botões pronta para uso e classe CSymbolInfo pronta - é isso - a tarefa é feita
O paradigma OOP lhe dá apenas informações gerais sobre o que você pode fazer com uma classe - se você não quiser encapsular o CSymbolInfo, você pode herdá-lo em sua própria classe
HH: O objetivo do OOP é resolver um determinado problema rapidamente e sem conhecimento de implementação.
Uma classe é uma descrição de um objeto. Bom. Contém as propriedades e a funcionalidade do objeto. Ok. Tudo isso é ordenado, aberto ou protegido.
Então o próprio OBJETO está fora de cogitação. É no contexto da classe. No contexto de seu nome e descrição. Isto é, no OOP, o Objeto, é exatamente um conjunto de atributos (não apenas propriedades, mas também elementos funcionais - métodos), mas mais ordenados e encapsulados do que eu tenho. (Faz mais sentido para mim).
Você tem que ler livros para deixar as coisas claras. Pelo menos VC++ em 21 dias.
Meu conselho pela primeira vez é usar MFC, criar um aplicativo Windows baseado em CDialog, criando todo tipo de objetos e ver como eles são fáceis de gerenciar.
Depois disso, você jogará fora seu empreendimento. Infelizmente.
Ainda assim, não entendo o que "Objeto" está no OOP.
Diz: "Um objeto é uma instância de uma classe". Uma classe pode ter muitas instâncias. Mas, estas instâncias são apenas referências à classe. Uma classe contém campos. Os campos sãoas propriedades do objeto. Os métodos são elementos do motor que lidam com os valores de propriedades específicas do objeto.
No meu entendimento, um objeto é um conjunto nomeado (ou numerado) de propriedades. Os valores de propriedade são tratados por vários mecanismos de grandes blocos. É basicamente a mesma coisa. Somente ela é escrita de maneira diferente. No OOP, a funcionalidade é fragmentada por causa de seu encapsulamento. No meu caso, é vice-versa - fusão de funcionalidades.
Se transformarmos a questão em uma área gráfica, a classe CButton é a mesma do meu elemento Button. Na minha implementação, são três objetos no núcleo, cada um com uma série de propriedades. Na classe, é também uma lista de propriedades (campos), métodos do botão (não tenho métodos pertencentes separadamente ao botão). A funcionalidade dos botões está dentro de blocos funcionais globais). Nesses blocos, o botão é tratado como qualquer elemento, mas em certos lugares ele tem suas condições pessoais e manipuladores. No OOP, a mesma funcionalidade de botão é encapsulada em uma classe acessada através de instâncias.
George, em cada biblioteca, em cada solução, há um conceito. Se eu pegar o conceito de outra pessoa e tentar desenvolver o meu com base nele, posso ter uma quebra de conceito, porque um sistema construído sobre dois ou mais conceitos não pode ser estável. Portanto, coisas inovadoras têm que ser desenvolvidas por você mesmo e do zero. Para não lutar contra os erros "genéricos" e as inconsistências dos outros autores.
Peter, você está argumentando em vão. É impossível provar nada. Também não entendo esta abordagem de programação quando, em vez de usar _Symbol, sugerem conectar a biblioteca CSymbolInfo e escrever objeto.Name().
Eu não entendo o uso de tais métodos, por exemplo
Qual é a dificuldade em escrever
E em ambos os casos, apenas uma linha de código.
Por outro lado, Artyom me mostrou possibilidades OOP, nas quais eu me perdi, não entendi nada e não uso
Não tanto assim.
Aqui está outra maneira de explicar isso. Normalmente ninguém explica dessa forma.
Todos os programadores sabem o que é int x, por exemplo;
Agora vamos imaginar que a palavra int é como o nome de uma classe. O que ela descreve?
1. um número inteiro
2. Ocupa 4 bytes em memória
3. toma valores +- dentro de alguns limites. (isso é o suficiente);
E quando escrevemos int x; então declaramos um objeto x, tipo int . x já ocupa fisicamente um campo de 4 bytes na RAM.
Peter, você está argumentando em vão. É impossível provar nada. Também não entendo esta abordagem de programação quando em vez de usar _Symbol eles sugerem conectar a biblioteca CSymbolInfo e escrever objeto.Name()
Eu não entendo o uso de tais métodos, por exemplo
Qual é a dificuldade em escrever
Em ambos os casos, há apenas uma linha de código.
Por outro lado, Artyom me mostrou possibilidades OOP, nas quais eu me perdi, não entendi nada e não uso
Nesta variante de sentido, a Classe é um armazém de ferramentas, materiais, matérias primas e máquinas. Hierarquia das classes herdadas - como as oficinas de uma "fábrica".
Peter, por que você gostaria de entrar em tais sutilezas?
Uma classe é uma descrição de um objeto, suas propriedades e métodos para definir e acessar essas propriedades.
Um objeto é quando declaramos uma variável do tipo classe, ou criamos um novo objeto dessa classe utilizando um novo operador.
Por exemplo, esta é uma classe:
Tem apenas dois membros de classe - tipo e nome. Estas são suas propriedades. E ainda não é um objeto. É um plano, uma planta, um plano... do objeto futuro.
Nós criamos um objeto:
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объектNós criamos um objeto e um ponteiro para ele:
George, em cada biblioteca, em cada solução, há um conceito. Se eu pegar o conceito de outra pessoa e tentar desenvolver o meu com base nele, posso ter uma quebra de conceito, porque um sistema construído sobre dois ou mais conceitos não pode ser estável. Portanto, coisas inovadoras têm que ser desenvolvidas por você mesmo e do zero. Para não lutar contra os erros "genéricos" e as inconsistências dos outros autores.
Há apenas sete (!) notas. E quanta música está neles? E nenhum compositor pensa em colapso. Ele apenas escreve música que toca na alma. Ele não inventa outra coisa, ele usa essas sete notas.
Peter, por que você gostaria de entrar em tais sutilezas?
Uma classe é uma descrição de um objeto, suas propriedades e métodos para definir e acessar essas propriedades.
Um objeto é quando declaramos uma variável do tipo classe, ou criamos um novo objeto dessa classe utilizando um novo operador.
Por exemplo, esta é uma classe:
Tem apenas dois membros de classe - tipo e nome. Estas são suas propriedades. E ainda não é um objeto. É um plano, um projeto, um plano... de um objeto futuro.
Nós criamos um objeto:
Nós criamos um objeto e um ponteiro para ele:
Uma classe é uma descrição de um objeto. Bom. Contém as propriedades e a funcionalidade do objeto. Ok. Tudo isso é ordenado, aberto ou protegido.
Então o próprio OBJETO está fora de cogitação. É no contexto da classe. No contexto de seu nome e descrição. Isto é, no OOP, o Objeto, é exatamente um conjunto de atributos (não apenas propriedades, mas também elementos funcionais - métodos), mas mais ordenados e encapsulados do que eu tenho. (Faz mais sentido para mim).
Eu não entendo o uso de métodos SB, tais como
por que é difícil escrever
o próprio conceito de OOP implica simplesmente não escrever - você não precisa saber a implementação do método (em seu exemplo return(SymbolSelect(m_name,select))
Imagine que, ao invés desta linha:
você tem que fazer muitas consultas, várias verificações, etc. - Isso levará tempo para escrever sua própria biblioteca e estudar o material
Suponha que sua tarefa seja usar apenas um método de solução pronta na forma de uma classe - você cria uma instância da classe (objeto) e usa o método Select(const bool select) pronto
Se você não vai realizar tais operações, liberar memória = apagar o objeto
Suponha que sua tarefa seja exibir um botão, apertando-o, você ativa/desativa o símbolo no relógio do mercado ---> crie sua própria classe e encapsule-a com uma classe de botões pronta para uso e classe CSymbolInfo pronta - é isso - a tarefa é feita
O paradigma OOP lhe dá apenas informações gerais sobre o que você pode fazer com uma classe - se você não quiser encapsular o CSymbolInfo, você pode herdá-lo em sua própria classe
HH: O objetivo do OOP é resolver um determinado problema rapidamente e sem conhecimento de implementação.
Uma classe é uma descrição de um objeto. Bom. Contém as propriedades e a funcionalidade do objeto. Ok. Tudo isso é ordenado, aberto ou protegido.
Então o próprio OBJETO está fora de cogitação. É no contexto da classe. No contexto de seu nome e descrição. Isto é, no OOP, o Objeto, é exatamente um conjunto de atributos (não apenas propriedades, mas também elementos funcionais - métodos), mas mais ordenados e encapsulados do que eu tenho. (Faz mais sentido para mim).
Você tem que ler livros para deixar as coisas claras. Pelo menos VC++ em 21 dias.
Meu conselho pela primeira vez é usar MFC, criar um aplicativo Windows baseado em CDialog, criando todo tipo de objetos e ver como eles são fáceis de gerenciar.
Depois disso, você jogará fora seu empreendimento. Infelizmente.