Una domanda per gli esperti di OOP. - pagina 2

 
Реter Konow:

In OOP, un "oggetto" è un riferimento a una classe in cui sono dichiarati i suoi campi (proprietà). Intendo un oggetto come un insieme numerato di proprietà, ognuna delle quali è una cella di un array. Questa è la differenza.

Le domande non sono legate al tema delle interfacce grafiche. Ho bypassato da tempo le librerie grafiche e non ho nulla da cercare lì. Ma ora sono interessato al tema dell'IA, e questo pone nuove sfide e domande.

Allora prendete una libreria off-the-shelf, fate amicizia con mql e andate avanti. Perché reinventare la ruota?

 
Artyom Trishkin:
Spiega cosa intendi con "...È una gerarchia statica. Costante e immutabile"?
Beh, ogni categoria ha un certo insieme statico di concetti. Può essere completato, ma il suo "fondamento" è invariabile. Tali insiemi formano una gerarchia "statica".
 
Реter Konow:

In OOP, un "oggetto" è un riferimento a una classe in cui sono dichiarati i suoi campi (proprietà). Intendo un oggetto come un insieme numerato di proprietà, ognuna delle quali è una cella di un array. Questa è la differenza.

Decidi tu, ma stai introducendo la nozione di ambiguità nella terminologia all'inizio

Artyom Trishkin:
Spiega cosa intendi con "...E stiamo parlando di una gerarchia statica. Costante e immutabile"?

)))))

ha la sua terminologia e stiamo giocando a "indovina la melodia".

SZZY: Ho cambiato lavoro 5 volte, ma dopo la 2a volta ho capito che per entrare rapidamente nel team, devi imparare a comunicare nella stessa lingua dei tuoi colleghi, cioè essere in grado di fare una domanda usando termini tecnici generalmente accettati prima - questo è il più efficace, altrimenti riceverai una risposta "ecco i manuali, vai a leggerli"))

 
Реter Konow:
Beh, ogni categoria ha un certo insieme statico di concetti. Può essere riempito, ma il suo "fondamento" è immutato. Tali insiemi statici di concetti formano una gerarchia "statica".

Vuoi dire che hai un oggetto con un numero fisso di campi, e hai bisogno di creare una gerarchia di tali oggetti? Ma qualsiasi oggetto ha un numero statico di campi (finché non ne cambiate il numero voi stessi nel codice della classe).

Non capisco bene cosa intendi. Categoria - cosa intendi? "Fondazione"- cosa intende?

 
Igor Makanu:

il tuo caso, ma stai introducendo una nozione di ambiguità terminologica fin dall'inizio

)))))

Ha la sua terminologia e stiamo giocando a "indovina la melodia".

SZS: ho cambiato lavoro 5 volte, ma dopo la 2a volta ho capito che per entrare velocemente nel team, devi prima imparare a comunicare nella stessa lingua dei tuoi colleghi, cioè essere in grado di fare una domanda usando termini tecnici precedentemente concordati - questo è il più efficace, altrimenti ottieni la risposta "ecco i manuali, vai a leggerli"))

Vedete - se stiamo parlando di una gerarchia statica di oggetti, allora un array associativo è in ordine. E se parliamo di qualche altra staticità di non so che altro, allora..., allora si pone una domanda esplicativa a Peter.
 
Artyom Trishkin:

Vuoi dire che hai un oggetto con un numero fisso di campi, e hai bisogno di creare una gerarchia di tali oggetti? Ma qualsiasi oggetto ha un numero statico di campi (finché non li aggiungete voi stessi nel codice della classe).

Non ti capisco bene. Categoria - cosa intendi? "Fondazione - cosa vuoi dire?

Un oggetto con un numero fisso di campi è diverso. Qui c'è un contesto filosofico, non programmatico, di concetti. Dovresti essere ben informato su questo. Nella visione filosofica, un Oggetto è un'entità rappresentata come un insieme nominato di proprietà. Una proprietà è un attributo obbligatorio di un oggetto e in generale di qualsiasi entità (processo, stato, valore...). Una categoria è una proprietà piuttosto che un oggetto, e come proprietà è una variabile. Poi l'elenco delle sue sottocategorie è un elenco dei suoi valori in stato di proprietà variabile.

Inoltre, la gerarchia delle categorie è un insieme statico di relazioni. Riflette l'annidamento dei collegamenti nella gerarchia.

È un'immagine del mondo, rappresentata come una base di conoscenza.

 
Реter Konow:

Un oggetto con un numero immutabile di campi è diverso. C'è un contesto filosofico piuttosto che programmatico per i concetti qui. Dovresti essere ben informato su questo. Filosoficamente, un oggetto è un'entità rappresentata come un insieme nominato di proprietà. Una proprietà è un attributo obbligatorio di un oggetto e in generale di qualsiasi entità (processo, stato, valore...). Una categoria è una proprietà piuttosto che un oggetto, e come proprietà è una variabile. Poi l'elenco delle sue sottocategorie è un elenco dei suoi valori in stato di proprietà variabile.

Inoltre, la gerarchia delle categorie è un insieme statico di relazioni. Riflette l'annidamento dei collegamenti nella gerarchia.

È un'immagine del mondo presentata come una base di conoscenza.

Peter, mi fai passare per una specie di filosofo incallito. Tuttavia, questo non è affatto vero. Io opero con un insieme assolutamente limitato di nozioni, che rientrano nel concetto generale di OOP.

Se parliamo dell'immagine del mondo, ogni essere vivente può essere chiamato oggetto. Ogni essere vivente ha il suo insieme di qualità, che ci dicono senza ambiguità a quale classe di esseri viventi può essere riferito. Ma tutti gli esseri viventi hanno proprietà di base, e sono immutabili - è questo che intendeva per 'fondamento'?

 
Artyom Trishkin:

Peter, mi fai passare per una specie di filosofo incallito. Tuttavia, questo non è affatto vero. Opero con un insieme molto limitato di concetti che rientrano nel concetto generale di OOP.

Se parliamo dell'immagine del mondo, ogni essere vivente può essere chiamato oggetto. Ogni essere vivente ha il suo insieme di qualità, che ci dicono senza ambiguità a quale classe di esseri viventi può essere riferito. Ma tutti gli esseri viventi hanno proprietà di base, e sono immutabili - è questo che intendeva per 'fondamento'?

Sì, proprio così. Ogni oggetto ha proprietà fondamentali. E ognuno appartiene a una categoria, che a sua volta è annidata in un'altra categoria, e questa nella categoria successiva, e così via, fino alla cima dell'astrazione. Questo "percorso" da qualsiasi Oggetto particolare alla sua categoria, sovra-categoria e sovra-categoria è statico. Pertanto, ho introdotto la nozione di fondamento, cioè le relazioni immutabili tra le categorie. Da qui è nato il compito di costruire una gerarchia. Ma forse la memoria e le capacità del computer non sono ideali per costruire strutture complesse e annidate. Forse le limitazioni tecniche non permetteranno di implementare questo in modo efficiente.

 
Реter Konow:

Sì, giusto. Ogni oggetto ha proprietà fondamentali. E ogni oggetto appartiene a una categoria, che a sua volta è annidata in un'altra categoria, che a sua volta è annidata nella categoria successiva, e così via, fino alla cima dell'astrazione. Questo "percorso" da qualsiasi Oggetto particolare alla sua categoria, sovra-categoria e sovra-categoria è statico. Pertanto, ho introdotto la nozione di fondamento, cioè le relazioni immutabili tra le categorie. Da qui è nato il compito di costruire una gerarchia. Ma forse la memoria e le capacità del computer non sono ideali per costruire strutture annidate complesse. Forse le limitazioni tecniche non permetteranno di implementare questo in modo efficiente.

Creatura.

Flora/Fauna

Sottospecie

Specie

Famiglia

ecc.

È questo che vuoi?

Beh, è una semplice eredità dall'entità base "Entity".

Ma si può andare più in profondità - ci sono unicellulari/multicellulari, e tutto ciò si applica agli esseri viventi. Ma ci sono anche quelli non viventi. Tutto dipende dai compiti che hai bisogno di trovare le proprietà di un oggetto base, ed ereditare da esse.

Se ci si sbatte molto, si potrebbe arrivare fino agli atomi e cominciare a dividerli in componenti alla ricerca di un oggetto padre fondamentale (attenzione - una reazione di fissione potrebbe diventare una reazione a catena, e si distruggerebbe mezzo mondo :))

 
Реter Konow:

Come si fa un ciclo OOP sugli oggetti e le loro proprietà?

Per esempio, eseguo un ciclo come segue:

Se ho capito bene il tuo codice, ecco la sua controparte OOP:

class MyClass
{
public:
   int _X_SIZE;
   color _this_state_color;
   
   int props[];
   
   void Redraw();
};

MyClass* G_CORE[obj_total];

//Цикл по объектам в поиске нужного значения конкретного свойства.

for( int a1 = 0; a1 < obj_total; a1++ )
{
   if( G_CORE[a1]._X_SIZE == THIS_SIZE )
   {
      G_CORE[a1]._this_state_color = clrWhite;
      G_CORE[a1].Redraw();
   }
}

//Цикл по свойствам в поиске неверного значения

for( int a1 = 0; a1 < prop_total; a1++ )
{
   if( G_CORE[ELEMENT].props[a1] > Max_value )
   {
      G_CORE[ELEMENT].props[a1] = Max_value;
      G_CORE[ELEMENT].Redraw();
   }
}
Motivazione: