Ich habe zunächst mal 5 Fragen über Programmiersprachen
-
peterchen schrieb:
Es geht. Es ist nur unangenehm.
...und unglaublich dumm. Wenn man schon Objektorientierung haben möchte, dann sollte man auch eine Sprache wählen, die dies entsprechend unterstützt. Wenn man es anders macht, zeigt man nur, dass man keine Ahnung von den Werkzeugen hat, die einem zur Verfügung stehen.
(IMHO)
-
Wenn man es anders macht, zeigt man nur, dass man keine Ahnung von den Werkzeugen hat, die einem zur Verfügung stehen.
Genau meine Rede. Ich meine nur: es gibt objektive Kriterien, nach denen man die Brauchbarkeit einer Programmirsprache für einen bestimmten Aufgabenbeeich analysieren kann - und davon ausgehend: auch bewerten kann welche Konzepte einen größeren problembereich abdecken.
@Spacelord:
Was ist da da Problem? An obigen Code anknüpfend -typedef struct { A baseA; } C; int C_Func_Impl(void * obj) { printf("and C, you see?\n"); } C_Init(void * obj) { B * pB = obj; pB->baseA->pFunc = C_Func_Impl; } void main() { A * array[3]; // Array of A pointers array[0] = malloc(sizeof(A)); // initialize an A instance A_Init(array+0); array[1] = malloc(sizeof(B)); // initialize a B instance B_Init(array+1); array[2] = malloc(sizeof(C)); // initialize a C instance C_Init(array+1); for(int i=0; i<3; ++i) // iterate through the items { A_Func(array+i); // Watch the magic happen } }
-
Vielleicht noch mal meine Motivation: Ich will noiemandem verklickern, er soll in C OO-proggen.
Aber man sollte sich mal genau anschauen, ob man in seinem C++ nicht manchmal genau den gleichen Mist macht...