Bonjour à tous,
Je suis actuellement dans la lecture d'un excellent bouquin sur la programmation de jeu, une partie traite des classes optionnelles voila un bout du code :Seulement c'est la première fois que je vois l'opérateur new utilisé de cette manière, il n'y a de delete associé nulle part dans le code et GetT dans ce cas retourne un T*const donc les données ne sont pas sencé être modifié sauf si j'ai rien compris....... Si vous pouviez m'éclairer sur ce mystère
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // Base : template <unsigned long size> class optional_base { public: optional_base(); optional_base(const optional_base &t); optional_base & operator = (const optional_base &t); bool const Valid() const; bool const UnValid() const; protected: bool m_bValid; char m_data[size]; }; // Optional : template <class T> class optional : public optional_base<sizeof(T)> { public: // Constructeurs... // Operateurs... private: const T * const GetT() const { return reinterpret_cast<const T * const>(m_data); } T * const GetT() { return reinterpret_cast<T * const>(m_data); } void Construct(const T &t) { new (GetT()) T(t); } void Destroy() { GetT()->~T(); } };, si il faut plus de détail sur le code n'hésitez pas à demander
Merci d'avance






Répondre avec citation



) Mais alors ce que je comprend pas c'est pourquoi utiliser ces deux syntaxes pour définir la même chose mais surtout pourquoi mettre deux 'const' sachant que l'un d'entre eux ne veut strictement rien dire....

en parle






Partager