This is an old revision of the document!
Supposons que nous souhaitons définir une classe qui founit un buffer d'une taille prédéfinie :
class buffer { private: uint8_t m_buffer[128]; public: buffer(const buffer& anotherBuffer) { std::copy(anotherBuffer.m_buffer, anotherBuffer.m_buffer + 128, m_buffer); } int size() const { return 128; } buffer& operator = (const buffer& anotherBuffer) { std::copy(anotherBuffer.m_buffer, anotherBuffer.m_buffer + 128, m_buffer); return this; } operator uint8_t*() const { return m_buffer; } uint8_t operator[](int anIndex) const { if(anIndex >= 128) throw std::out_of_range("index larger than buffer"); return m_buffer[anIndex]; } uint8_t& operator[](int anIndex) { if(anIndex >= 128) throw std::out_of_range("index larger than buffer"); return m_buffer[anIndex]; } };
Cette classe définit un buffer d'une taille de 128 octets.