Dice: "Un oggetto è un'istanza di una classe". Una classe può avere molte istanze. Ma queste istanze sono solo riferimenti alla classe. Una classe contiene campi. I campi sonole proprietà dell'oggetto. I metodi sono elementi del motore che gestiscono i valori di specifiche proprietà dell'oggetto.
Per come la vedo io, un oggetto è un insieme di proprietà nominate (o numerate). I valori di proprietà sono gestiti da vari meccanismi di grandi blocchi. È praticamente la stessa cosa. Solo che è scritto in modo diverso. In OOP, la funzionalità è frammentata per il bene del suo incapsulamento. Nel mio caso è viceversa - fusione di funzionalità.
Se trasformiamo la domanda in un'area grafica, la classe CButton è la stessa del mio elemento Button. Nella mia implementazione, sono tre oggetti nel kernel, ognuno con un certo numero di proprietà. Nella classe, è anche un elenco di proprietà (campi), metodi del pulsante (non ho metodi appartenenti separatamente al pulsante. La funzionalità dei pulsanti è all'interno di blocchi funzionali globali). In questi blocchi, il pulsante è trattato come qualsiasi elemento, ma in certi punti ha le sue condizioni e gestori personali. In OOP, la stessa funzionalità del pulsante è incapsulata in una classe a cui si accede tramite istanze.
George, in ogni biblioteca, in ogni soluzione, c'è un concetto. Se prendo il concetto di qualcun altro e cerco di sviluppare il mio sulla sua base, potrei avere un crash del concetto, perché un sistema costruito su due o più concetti non può essere stabile. Pertanto, le cose innovative devono essere sviluppate da soli e da zero. Per non lottare con gli errori "generici" e le incongruenze degli altri autori.
Peter, stai discutendo invano. È impossibile provare qualcosa. Inoltre non capisco questo approccio alla programmazione quando invece di usare _Symbol suggeriscono di collegare la libreria CSymbolInfo e scrivere object.Name().
Non capisco l'uso di questi metodi per esempio
//+------------------------------------------------------------------+//| Set the property value "SYMBOL_SELECT" |//+------------------------------------------------------------------+bool CSymbolInfo::Select(constboolselect)
{
return(SymbolSelect(m_name,select));
}
Qual è la difficoltà nello scrivere
SymbolSelect("Нужный символ", включить или выключить);
In entrambi i casi c'è solo una linea di codice.
D'altra parte, Artyom mi ha mostrato possibilità OOP, in cui mi sono perso, non ho capito niente e non uso
Ecco un altro modo di spiegarlo. Di solito nessuno lo spiega in questo modo.
Tutti i programmatori sanno cos'è l' int x, per esempio;
Ora immaginiamo che la parola int sia come il nome di una classe, e cosa descrive?
1. un intero
2. occupa 4 byte in memoria
3. assume valori +- entro certi limiti. (questo è sufficiente);
E quando scriviamo int x; allora dichiariamo un oggetto x, di tipo int . x occupa già fisicamente un campo di 4 byte nella RAM.
Grazie. In questo caso - una classe è un'entità incapsulata, un contenitore che è essenzialmente un Oggetto in sé, in una relazione gerarchica con altre classi-oggetto. Una classe descrive la sua entità attraverso proprietà (campi) e metodi (funzionalità incapsulate), separati dalla funzionalità di altri oggetti.
Peter, stai discutendo invano. È impossibile provare qualcosa. Inoltre non capisco questo approccio alla programmazione quando invece di usare _Symbol suggeriscono di collegare la libreria CSymbolInfo e scrivere object.Name()
Non capisco l'uso di questi metodi per esempio
Qual è la difficoltà nello scrivere
In entrambi i casi c'è solo una linea di codice.
D'altra parte, Artyom mi ha mostrato possibilità OOP, in cui mi sono perso, non ho capito niente e non uso
Niente :)) Cercando di capire il concetto di OOP per trovare differenze e somiglianze con il mio concetto. Penso che arricchirà le mie conoscenze)).
Реter Konow: In questa variante di senso, la Classe è un magazzino di strumenti, materiali, materie prime e macchine. Gerarchia di classi ereditate - come i laboratori di una "fabbrica".
Peter, perché vuoi entrare in queste sottigliezze?
Una classe è una descrizione di un oggetto, le sue proprietà e i metodi per impostare e accedere a queste proprietà.
Un oggetto è quando dichiariamo una variabile di tipo classe, o creiamo un nuovo oggetto di quella classe usando l'operatore new.
Per esempio, questa è una 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; }
};
//+------------------------------------------------------------------+
Ha solo due membri di classe - type e name. Queste sono le sue proprietà. E non è ancora un oggetto. È un piano, un progetto, un progetto... dell'oggetto futuro.
Creiamo un oggetto:
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объект
Creiamo un oggetto e un puntatore ad esso:
CClass *class_ptr = new CClass(); // Оператором new создали новый объект класса CClass, и в переменную class_ptr получили на него указатель. // Теперь в памяти сидит объект CClass, и получить к нему доступ можно по этому указателю, // и по этому же указателю обязательно удалить объект по завершении работы оператором delete
Come ho detto prima, la visione OOP dell'oggetto è più ampia del mio concetto. Ho avuto a che fare solo con oggetti grafici, con un insieme monotono di proprietà. OOP offre una visione di qualsiasi entità attraverso il concetto di Oggetto. Questo è ovviamente fantastico, perché qualsiasi entità è un Oggetto. Naturalmente, sono contro l'incapsulamento eccessivo e la frammentazione delle funzionalità degli oggetti. Perché? Sì perché rende i meccanismi meno efficienti. Ma la possibilità stessa di guardare l'Oggetto in un contesto più ampio mi attrae.
George, in ogni biblioteca, in ogni soluzione, c'è un concetto. Se prendo il concetto di qualcun altro e cerco di sviluppare il mio sulla sua base, potrei avere un crash del concetto, perché un sistema costruito su due o più concetti non può essere stabile. Pertanto, le cose innovative devono essere sviluppate da soli e da zero. Per non lottare con gli errori "generici" e le incongruenze degli altri autori.
Ci sono solo sette (!) note. E quanta musica c'è su di loro? E nessun compositore pensa al collasso. Scrive solo musica che suona nell'anima. Non inventa qualcos'altro, usa quelle sette note.
Peter, perché vuoi entrare in queste sottigliezze?
Una classe è una descrizione di un oggetto, le sue proprietà e i metodi per impostare e accedere a queste proprietà.
Un oggetto è quando dichiariamo una variabile di tipo classe, o creiamo un nuovo oggetto di quella classe usando l'operatore new.
Per esempio, questa è una classe:
Ha solo due membri di classe - type e name. Queste sono le sue proprietà. E non è ancora un oggetto. È un piano, un progetto, un progetto... ...di un oggetto futuro.
Creiamo un oggetto:
Creiamo un oggetto e un puntatore ad esso:
Una classe è una descrizione di un oggetto. Bene. Contiene le proprietà e le funzionalità dell'oggetto. Ok. Tutto questo è ordinato, aperto o protetto.
Allora l'OGGETTO stesso è fuori dal quadro. È nel contesto della classe. Nel contesto del suo nome e della sua descrizione. Cioè, in OOP, l'Oggetto, è esattamente un insieme di attributi (non solo proprietà, ma anche elementi funzionali - metodi), ma più ordinato e incapsulato di quello che ho. (Ha più senso per me).
il concetto stesso di OOP implica semplicemente non scrivere - non è necessario conoscere l'implementazione del metodo (nel tuo esempio return(SymbolSelect(m_name,select))
Immaginate che invece di questa linea:
SymbolSelect("Нужный символ", включить или выключить);
devi fare un sacco di ricerche, controlli vari, ecc. - Questo ti porterà via del tempo per scrivere la tua libreria e studiare il materiale
Supponiamo che il vostro compito sia solo quello di usare un solo metodo di una soluzione pronta sotto forma di una classe - create un'istanza della classe (oggetto) e usate il metodo pronto Select(const bool select)
Se non avete intenzione di eseguire tali operazioni, liberate la memoria = cancellate l'oggetto
Supponiamo che il vostro compito sia quello di visualizzare un pulsante, premendolo, attivate/disattivate il simbolo nell'orologio del mercato ---> create la vostra classe e incapsulatela con una classe pulsante già pronta e una classe CSymbolInfo pronta - ecco fatto - il compito è fatto
Il paradigma OOP ti dà solo informazioni generali su cosa puoi fare con una classe - se non vuoi incapsulare CSymbolInfo, puoi ereditarlo nella tua classe
HH: L'intero punto dell'OOP è di risolvere un dato problema rapidamente e senza conoscenza dell'implementazione.
Una classe è una descrizione di un oggetto. Bene. Contiene le proprietà e le funzionalità dell'oggetto. Ok. Tutto questo è ordinato, aperto o protetto.
Allora l'OGGETTO stesso è fuori gioco. È nel contesto della classe. Nel contesto del suo nome e della sua descrizione. Cioè, in OOP, l'Oggetto, è esattamente un insieme di attributi (non solo proprietà, ma anche elementi funzionali - metodi), ma più ordinato e incapsulato di quello che ho. (Ha più senso per me).
Bisogna leggere dei libri per chiarire le cose. Almeno VC++ in 21 giorni.
Il mio consiglio per la prima volta è di usare MFC, creare un'applicazione windows basata su CDialog, creando tutti i tipi di oggetti e vedere come sono facili da gestire.
Dopo di che butterete via la vostra impresa. Purtroppo.
Ancora, non capisco cosa sia "Object" nell'OOP.
Dice: "Un oggetto è un'istanza di una classe". Una classe può avere molte istanze. Ma queste istanze sono solo riferimenti alla classe. Una classe contiene campi. I campi sonole proprietà dell'oggetto. I metodi sono elementi del motore che gestiscono i valori di specifiche proprietà dell'oggetto.
Per come la vedo io, un oggetto è un insieme di proprietà nominate (o numerate). I valori di proprietà sono gestiti da vari meccanismi di grandi blocchi. È praticamente la stessa cosa. Solo che è scritto in modo diverso. In OOP, la funzionalità è frammentata per il bene del suo incapsulamento. Nel mio caso è viceversa - fusione di funzionalità.
Se trasformiamo la domanda in un'area grafica, la classe CButton è la stessa del mio elemento Button. Nella mia implementazione, sono tre oggetti nel kernel, ognuno con un certo numero di proprietà. Nella classe, è anche un elenco di proprietà (campi), metodi del pulsante (non ho metodi appartenenti separatamente al pulsante. La funzionalità dei pulsanti è all'interno di blocchi funzionali globali). In questi blocchi, il pulsante è trattato come qualsiasi elemento, ma in certi punti ha le sue condizioni e gestori personali. In OOP, la stessa funzionalità del pulsante è incapsulata in una classe a cui si accede tramite istanze.
George, in ogni biblioteca, in ogni soluzione, c'è un concetto. Se prendo il concetto di qualcun altro e cerco di sviluppare il mio sulla sua base, potrei avere un crash del concetto, perché un sistema costruito su due o più concetti non può essere stabile. Pertanto, le cose innovative devono essere sviluppate da soli e da zero. Per non lottare con gli errori "generici" e le incongruenze degli altri autori.
Peter, stai discutendo invano. È impossibile provare qualcosa. Inoltre non capisco questo approccio alla programmazione quando invece di usare _Symbol suggeriscono di collegare la libreria CSymbolInfo e scrivere object.Name().
Non capisco l'uso di questi metodi per esempio
Qual è la difficoltà nello scrivere
In entrambi i casi c'è solo una linea di codice.
D'altra parte, Artyom mi ha mostrato possibilità OOP, in cui mi sono perso, non ho capito niente e non uso
Non così tanto.
Ecco un altro modo di spiegarlo. Di solito nessuno lo spiega in questo modo.
Tutti i programmatori sanno cos'è l' int x, per esempio;
Ora immaginiamo che la parola int sia come il nome di una classe, e cosa descrive?
1. un intero
2. occupa 4 byte in memoria
3. assume valori +- entro certi limiti. (questo è sufficiente);
E quando scriviamo int x; allora dichiariamo un oggetto x, di tipo int . x occupa già fisicamente un campo di 4 byte nella RAM.
Peter, stai discutendo invano. È impossibile provare qualcosa. Inoltre non capisco questo approccio alla programmazione quando invece di usare _Symbol suggeriscono di collegare la libreria CSymbolInfo e scrivere object.Name()
Non capisco l'uso di questi metodi per esempio
Qual è la difficoltà nello scrivere
In entrambi i casi c'è solo una linea di codice.
D'altra parte, Artyom mi ha mostrato possibilità OOP, in cui mi sono perso, non ho capito niente e non uso
In questa variante di senso, la Classe è un magazzino di strumenti, materiali, materie prime e macchine. Gerarchia di classi ereditate - come i laboratori di una "fabbrica".
Peter, perché vuoi entrare in queste sottigliezze?
Una classe è una descrizione di un oggetto, le sue proprietà e i metodi per impostare e accedere a queste proprietà.
Un oggetto è quando dichiariamo una variabile di tipo classe, o creiamo un nuovo oggetto di quella classe usando l'operatore new.
Per esempio, questa è una classe:
Ha solo due membri di classe - type e name. Queste sono le sue proprietà. E non è ancora un oggetto. È un piano, un progetto, un progetto... dell'oggetto futuro.
Creiamo un oggetto:
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объектCreiamo un oggetto e un puntatore ad esso:
George, in ogni biblioteca, in ogni soluzione, c'è un concetto. Se prendo il concetto di qualcun altro e cerco di sviluppare il mio sulla sua base, potrei avere un crash del concetto, perché un sistema costruito su due o più concetti non può essere stabile. Pertanto, le cose innovative devono essere sviluppate da soli e da zero. Per non lottare con gli errori "generici" e le incongruenze degli altri autori.
Ci sono solo sette (!) note. E quanta musica c'è su di loro? E nessun compositore pensa al collasso. Scrive solo musica che suona nell'anima. Non inventa qualcos'altro, usa quelle sette note.
Peter, perché vuoi entrare in queste sottigliezze?
Una classe è una descrizione di un oggetto, le sue proprietà e i metodi per impostare e accedere a queste proprietà.
Un oggetto è quando dichiariamo una variabile di tipo classe, o creiamo un nuovo oggetto di quella classe usando l'operatore new.
Per esempio, questa è una classe:
Ha solo due membri di classe - type e name. Queste sono le sue proprietà. E non è ancora un oggetto. È un piano, un progetto, un progetto... ...di un oggetto futuro.
Creiamo un oggetto:
Creiamo un oggetto e un puntatore ad esso:
Una classe è una descrizione di un oggetto. Bene. Contiene le proprietà e le funzionalità dell'oggetto. Ok. Tutto questo è ordinato, aperto o protetto.
Allora l'OGGETTO stesso è fuori dal quadro. È nel contesto della classe. Nel contesto del suo nome e della sua descrizione. Cioè, in OOP, l'Oggetto, è esattamente un insieme di attributi (non solo proprietà, ma anche elementi funzionali - metodi), ma più ordinato e incapsulato di quello che ho. (Ha più senso per me).
Non capisco l'uso dei metodi SB come
perché è difficile scrivere
il concetto stesso di OOP implica semplicemente non scrivere - non è necessario conoscere l'implementazione del metodo (nel tuo esempio return(SymbolSelect(m_name,select))
Immaginate che invece di questa linea:
devi fare un sacco di ricerche, controlli vari, ecc. - Questo ti porterà via del tempo per scrivere la tua libreria e studiare il materiale
Supponiamo che il vostro compito sia solo quello di usare un solo metodo di una soluzione pronta sotto forma di una classe - create un'istanza della classe (oggetto) e usate il metodo pronto Select(const bool select)
Se non avete intenzione di eseguire tali operazioni, liberate la memoria = cancellate l'oggetto
Supponiamo che il vostro compito sia quello di visualizzare un pulsante, premendolo, attivate/disattivate il simbolo nell'orologio del mercato ---> create la vostra classe e incapsulatela con una classe pulsante già pronta e una classe CSymbolInfo pronta - ecco fatto - il compito è fatto
Il paradigma OOP ti dà solo informazioni generali su cosa puoi fare con una classe - se non vuoi incapsulare CSymbolInfo, puoi ereditarlo nella tua classe
HH: L'intero punto dell'OOP è di risolvere un dato problema rapidamente e senza conoscenza dell'implementazione.
Una classe è una descrizione di un oggetto. Bene. Contiene le proprietà e le funzionalità dell'oggetto. Ok. Tutto questo è ordinato, aperto o protetto.
Allora l'OGGETTO stesso è fuori gioco. È nel contesto della classe. Nel contesto del suo nome e della sua descrizione. Cioè, in OOP, l'Oggetto, è esattamente un insieme di attributi (non solo proprietà, ma anche elementi funzionali - metodi), ma più ordinato e incapsulato di quello che ho. (Ha più senso per me).
Bisogna leggere dei libri per chiarire le cose. Almeno VC++ in 21 giorni.
Il mio consiglio per la prima volta è di usare MFC, creare un'applicazione windows basata su CDialog, creando tutti i tipi di oggetti e vedere come sono facili da gestire.
Dopo di che butterete via la vostra impresa. Purtroppo.