Sites


openFrameworks

Classes et objets

Pourquoi la POO (Programmation orientée Objet)?

Même si en général l'utilisation d'oF précède celle de Processing, nous partirons du principe que la programmation orientée objet (POO) mobilisant la notion de classe et d'objet est à peu près connue. Notre explication consistera en un rappel, cela nous permettra d'économiser d'amples et précises explications.

Exemple concret avec une classe "Bactérie"

La classe est l'idée, l'objet sa réification.

Pour bien comprendre le concept de classe et d'objets nous allons donner un exemple de classe minimaliste: nous allons modéliser des bactéries.

Sans faire de la biologie de haut niveau, nous retiendrons qu'il existe des bactéries de différentes sortes; nous représenterons ici simplement les différentes bactéries simplement par rapport à leur couleur et à leur forme pour avoir l'exemple le plus épuré possible.

Pour bien comprendre le concept de classe, retenons-donc cette idée: même si chaque bactérie est unique, elles serons toutes issues du même modèle, elles serons toutes issues de l'idée de bactérie. Ainsi, l'idée de bactérie est la classe, où si l'on veut, le modèle. Telle ou telle bactérie spécifique est alors un objet, ou si l'on préfère : une occurence ou une réalisation de la classe, c'est-à-dire une variété générée et unique par rapport au modèle général.

Si l'on accepte la métaphore philosophique qui va suivre, on pourrait s'amuser à dire que la classe correspond à l'eidos —au sens phénoménologique du terme, c'est-à-dire inacessible à nos sens— et l'objet à la variation de l'eidos, intégrable à notre champ d'expérience.

Commençons à créer notre modèle ou idée de bactérie.

Créer fichiers de classe Balle.h et Balle.cpp [pourquoi, rôle des fichiers]

Bacterie.h

Inclure oF, définir sa classe.

Les déclarations nécessaires

Inclure fonctions OF, éviter conflit classes.

#ifndef _BACTERIE
#define _BACTERIE

#include <ofMain.h>

#endif

Déclarer fonctions et variables d'une classe

Blabla déclarer méthodes, variables, etc.


#ifndef BACTERIE
#define BACTERIE

#include "ofmain.h"

class Bacterie {

public:
       
        Bacterie();

        void update();
        void draw();
       
        float x,y;
       
};

#endif

 

Bacterie.cpp : Définir les méthodes d'une classe

Blabla, fonctions. Blabla constructeur.


#include "Ball.h"


Bacterie::Bacterie(){
//constructeur
}

void Bacterie::update(){
}

void Bacterie::draw(){
}

Sources:

http://www.ecole-art-aix.fr/OpenFrameworks-03-Creer-une-classe
http://openframeworks.cc/ofBook/chapters/OOPs!.html

 

Ajouter #include "Bacterie.h" dans ofApp.ph


Erreurs courantes: oublier de définir une fonction dans le header.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.