Discussione sull’articolo "Le Basi della Programmazione Orientata agli Oggetti" - pagina 2

 
Urain:

A proposito, mi sorprende che questi paradigmi fondamentali non siano trattati nella descrizione dell'OOP nella guida.

Non si tratta di OOP, ma di una conseguenza della sua applicazione nella vostra percezione dei modelli.
 
Urain:

1 No, non lo è, è l'uso dell'ereditarietà.

2 è più caldo, è Composizione, che è una delle tre opzioni di binding, insieme ad Associazione e Aggregazione.

A proposito, sono sorpreso che questi paradigmi fondamentali non siano trattati nella descrizione dell'OOP nella guida.

Si tratta di trucchi di programmazione piuttosto che di caratteristiche OOP dirette.

Per quanto riguarda l'aggregazione:

Nella programmazione orientata agli oggetti, l'aggregazione (chiamata anche composizione o inclusione) si riferisce alla tecnica di creazione di una nuova classe a partire da classi esistenti mediante annidamento. L'aggregazione è anche spesso definita come una "relazione di appartenenza", sulla falsariga di "un'auto ha la carrozzeria, le ruote e il motore".

Gli oggetti annidati di una nuova classe sono solitamente dichiarati privati, rendendoli inaccessibili ai programmatori delle applicazioni che lavorano con la classe. D'altra parte, il creatore della classe può modificare questi oggetti senza disturbare il codice client esistente. Inoltre, la sostituzione degli oggetti annidati in fase di esecuzione consente di modificare dinamicamente il comportamento del programma. Il meccanismo di ereditarietà non ha questa flessibilità, perché per le classi derivate vengono stabilite delle restrizioni, che vengono controllate in fase di compilazione.

Sulla base dell'aggregazione viene implementato il metodo della delega, quando un compito assegnato a un oggetto esterno viene delegato a un oggetto interno specializzato nella risoluzione di compiti di questo tipo.

http://ru.wikipedia.org/wiki/Агрегирование_( programmazione)

Questo è lo spirito dell'OOP che permea tutte le OOP.
 
sergeev:

Aprite la guida sulle strutture e leggete anche la conversione di tipo, a proposito delle strutture.

I membri dei metodi erano disponibili fin dall'inizio. Perché volete rimuoverli?

IMHO, mi avete confuso con qualcun altro.
 
Urain:

Associazione e altri modi di collegare le classi.

Ebbene, a cosa serve ) . Ecco i modelli è sì, ma non è il livello dei principianti.
Intero:

Un punto:

m_size.

Il prefisso m_ nelle comuni convenzioni di denominazione è anteposto ai membri dei dati della classe. Serve soprattutto a distinguere esplicitamente le variabili locali dai dati della classe nei metodi.

Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
Integer:
È possibile scrivere funzioni in una struttura? Probabilmente si tratta di puntatori a una classe: l'ho visto, l'ho provato, è meglio non saperlo.
Provate: potete scriverli e chiamarli. E dovreste farlo.
[Eliminato]  
Urain:

Perché i codici non passano attraverso lo styler?

Per un nuovo arrivato sarà difficile leggere, perché vede uno stile in ME e un altro nell'articolo.

ZY L'articolo non rivela i problemi di connessione tra le classi.

In generale, ovviamente, l'OOP è un argomento complesso, non è facile descriverlo con un linguaggio semplice, ma bisogna pur iniziare da qualche parte.


stile della fonte corretto
 
buon articolo...mi rende facile la comprensione di OOP, grazie....
 
TheXpert:
Ebbene, a cosa serve? I modelli sono sì, ma questo non è il livello dei principianti.

Un momento:

m_size.

Il prefisso m_ nelle comuni convenzioni di denominazione viene applicato ai membri dei dati della classe. Serve soprattutto a distinguere esplicitamente le variabili locali dai dati della classe nei metodi.


Il prefisso m_ veniva utilizzato quando si programmava con MFC, applicato alle variabili private e protette; non esistono altre convenzioni "generalmente accettate". Dopo l'uscita di scena di MFC, tutti si sono dimenticati di tutti questi stupidi m_, grazie a Dio )). Se non ci credete, scaricate gli esempi e guardate voi stessi (c'è anche una sezione su MFC) http://archive.msdn.microsoft.com/vcsamples.

Visual C++ Samples and Related Documentation for Visual Studio 2010 - Home
  • archive.msdn.microsoft.com
French, German, Italian, Japanese, Korean, Russian, Simplified Chinese, Spanish, Traditional Chinese The Microsoft Visual C++ 2010 Sample Library provides code examples for applications and tools showing the capabilities of Visual C++ and the libraries and technologies it supports. Visual Studio 2010 Samples are now live! Click on the links...
 
VDev:

Il prefisso m_ veniva usato quando si programmava sotto MFC, applicato alle variabili private e protette, non ci sono altre convenzioni "generalmente accettate". Dopo l'uscita di scena di MFC, tutti questi stupidi m_ sono stati dimenticati, grazie a Dio )) Chi non ci crede, può scaricare gli esempi e verificare di persona (c'è anche una sezione su MFC) http://archive.msdn.microsoft.com/vcsamples.

No. При чем тут MFC? https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BD%D0%B3%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F

è convenienza e nulla più. Ogni società di programmazione può avere le proprie regole.

Венгерская нотация — Википедия
  • ru.wikipedia.org
Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) они могут быть...
 

Articolo molto necessario!

Suggerisco agli sviluppatori di creare una nuova categoria per gli articoli. Qualcosa come "Fondamenti (teoria) della programmazione"....