1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
--------------------------------------------
// Camera .h
struct Choc; // déclaration en avant, nécessaire pour les dependances circulaires (FAQ)
struct Camera {
Camera(Choc & c);
...
private:
Choc & getChoc() {return m_choc; }
Choc const& getChoc() const {return m_choc; }
int getChocNum() const;
Choc & m_choc; // référence => on ne change pas de contexte!
}
--------------------------------------------
// Choc.h
#include "Camera.h"
struct Choc {
int getNum() const;
std::string getComposant() const;
....
private:
int m_numero;
std::string m_composant;
Camera m_c1;
};
--------------------------------------------
// Camera.cpp
#include "Camera.h"
#include "Choc.h"
Camera::Camera(Choc & c) : m_choc(c) { ... }
int Camera::getChocNum() const {
return getChoc().getNum();
}
--------------------------------------------
// Choc.cpp
#include "Camera.h"
#include "Choc.h"
Choc::Choc(....) : m_c1(*this) { ... } |