Peter, hai l'OLP come uno straccio rosso davanti a un occhio di bue. Nessun altro thread discute di OOP tanto quanto voi. E questo nonostante il fatto che non hai scritto un solo programma in questa stessa OOP. Non trovate tutto questo strano?
Vasiliy Sokolov: Peter, hai OOP come uno straccio rosso davanti a un occhio di bue. Nessun altro thread discute di OOP tanto quanto voi. E tutto questo nonostante il fatto che non hai scritto un solo programma in questa stessa OOP. Non trovate tutto questo strano?
Sto semplicemente rispondendo ai suggerimenti di usare OOP nel mio approccio. Questi approcci non sono compatibili.
Quindi, continuerò a spiegare il mio approccio, senza spiegare perché non uso la sintassi OOP al suo interno.
Se non si capisce qualcosa, non ci sarà mai bisogno di usarla. Quindi, qualsiasi cosa abbiate in corso nelle vostre mega-librerie, "non sarà necessaria" per OOP.
Quindi, cominciamo con uno facile. Creiamo un elemento prototipo all'interno del proto-kernel:
int P_CORE[3][5] = {
//Основание кнопки.-----------------------------//// X Y X_SIZE Y_SIZE COLOR //----------------------------------------------
{ 100, 100, 200, 50, C'245,245,245'},
//---------------------------------------------- //Текст кнопки.---------------------------------//// X Y X_SIZE Y_SIZE COLOR //----------------------------------------------
{ 120, 120, 0, 0, C'245,0,0'},
//---------------------------------------------- //Иконка кнопки.-------------------------------- //// X Y X_SIZE Y_SIZE COLOR
{ 140, 140, 16, 16, 0},
//----------------------------------------------
};
P_CORE - массив. Я называю его прото-ядром, потому что он содержит прототип элемента, который далее будет изменен.
Элемент кнопка состоит из 3-ех объектов. Каждому из них мы предоставили 5 свойств.
#define BASE 0#define TEXT 1#define ICON 2//-------------------#define X 0#define X_SIZE 1#define Y 2#define Y_SIZE 3#define BG_COLOR 4#define TEXT_COLOR 4//-------------------
//Вот как будут выглядеть обращения к свойствам элемента:
P_CORE[BASE][X]
P_CORE[BASE][Y]
P_CORE[BASE][X_SIZE]
P_CORE[BASE][Y_SIZE]
P_CORE[BASE][COLOR]
P_CORE[TEXT][X]
P_CORE[TEXT][Y]
P_CORE[TEXT][X_SIZE]
P_CORE[TEXT][Y_SIZE]
P_CORE[TEXT][COLOR]
P_CORE[ICON][X]
P_CORE[ICON][Y]
P_CORE[ICON][X_SIZE]
P_CORE[ICON][Y_SIZE]
P_CORE[ICON][COLOR]
Peter, hai OOP come uno straccio rosso davanti a un occhio di bue. Nessun altro thread discute di OOP tanto quanto voi. E tutto questo nonostante il fatto che non hai scritto un solo programma in questa stessa OOP. Non trovate tutto questo strano?
Sto semplicemente rispondendo ai suggerimenti di usare OOP nel mio approccio. Questi approcci non sono compatibili.
Quindi, continuerò a spiegare il mio approccio, senza spiegare perché non uso la sintassi OOP al suo interno.
Se non lo uso, allora non ce n'è bisogno.
Entrambe le tesi sono false.
Non trascinare il topicstarter qui già per 6 pagine, ma non è chiaro cosa vuole mostrare, è chiaro che è tutto sul kernel ))))
ci mostrerà un esempio e poi lo convinceremo che OOP fa risparmiare tempo nello sviluppo del software ;)
Se non lo uso, allora non c'è bisogno di usarlo.
Se non si capisce qualcosa, non ci sarà mai bisogno di usarla. Quindi, qualsiasi cosa abbiate in corso nelle vostre mega-librerie, "non sarà necessaria" per OOP.
Se non si capisce qualcosa, non ci sarà mai bisogno di usarla. Quindi, qualunque cosa abbiate nelle vostre mega-librerie, non c'è "bisogno" di OOP lì.
Quindi, cominciamo con uno facile. Creiamo un elemento prototipo all'interno del proto-kernel:
E così, l'elemento è rappresentato nel proto-core in forma espansa e tabellare.
La rappresentazione tabellare ha i suoi vantaggi. Principalmente in loop.
Scriviamo ora una funzione che creerà un elemento.
Ma prima, definiamo le proprietà dell'oggetto tramite le definizioni, così è facile fare riferimento ad esse.
//Вот как будут выглядеть обращения к свойствам элемента: P_CORE[BASE][X] P_CORE[BASE][Y] P_CORE[BASE][X_SIZE] P_CORE[BASE][Y_SIZE] P_CORE[BASE][COLOR] P_CORE[TEXT][X] P_CORE[TEXT][Y] P_CORE[TEXT][X_SIZE] P_CORE[TEXT][Y_SIZE] P_CORE[TEXT][COLOR] P_CORE[ICON][X] P_CORE[ICON][Y] P_CORE[ICON][X_SIZE] P_CORE[ICON][Y_SIZE] P_CORE[ICON][COLOR]Scriviamo una funzione che creerà un pulsante:
Naturalmente, alcuni diranno che il kernel non è necessario. Una chiamata come questa sarà sufficiente:
e tutto sarà uguale. Sì, ma solo all'inizio. Il problema di una tale chiamata è che non può essere sviluppata adeguatamente.
Abbiamo bisogno che le proprietà di ogni elemento siano organizzate nella memoria globale e accessibili nel modo più semplice.