Η δημιουργία προτύπων-τάξεων στον αντικειμενοστραφή προγραμματισμό, και το πως τα δημιουργείς αυτά, αποτελεί το μέτρο αντίληψης και κατανόησης ενός προγραμματιστή του αντικειμένου με το οποίο ασχολείται. Η C++ είναι μια γλώσσα ισχυρή με αρκετή γραφεικρατία. Παραθέτω παράδειγμα προτύπου: αρχικά το αρχείο header(ofball.h) που αποτελέι την επιφάνεια διάδρασης(interface) του προτύπου.
#ifndef _of_ball // by using this if statement you // prevent the class to be called more // than once - in other words // what we're saying here is #define _of_ball //if the class has not been defined then define it #include "ofmain.h" class ofball { public: // methods-μηνύματα void update(); void draw(); //constructor-αντικείμενα ofball(float x, float y, int dim); // variables-μεταβλητές float x; float y; int dim; float speedx; float speedy; private: };//don't forget the semicolon in the end of the class definition #endif
και, στη συνέχεια το cpp (ofball.cpp) αρχείο στο οποίο γίνοται οι πράξεις
#include "ofball.h" ofball::ofball(float _x, float _y, int _dim) { x = _x; y = _y; dim = _dim;
speedx = ofrandom(-1, 1); speedy = ofrandom(-1, 1); } void ofball::update(){ if(x < 0 ){ x = 0; speedx *= -1; } else if(x > ofgetwidth()){ x = ofgetwidth(); speedx *= -1; } if(y < 0 ){ y = 0; speedy *= -1; } else if(y > ofgetheight()){ y = ofgetheight(); speedy *= -1; }
x+=speedx; y+=speedy; } void ofball::draw(){ ofsetcolor(120,120,120); ofcircle(x, y, dim); }
Η συνάρτηση ~ofball() {} ονομάζεται destructor (καταστροφέας) και καλέιται αυτόματα όποτε χρειαστεί η καταστροφή του ατικειμένου της κλάσης ofball. Ο destructor είναι μοναδικός και δεν παίρνει ορίσματα. Αν δεν τον ορίσει ο χρήστης τον ορίζει ο compiler (μεταφραστής). Για να σβήσεις ένα αντικείμενο που το έχεις δημιουργήσει μέσω new: delete objname; link