<<<Index>>>

mutable data members


  • Solution:

// String.h
class String {
public:
    void reserve( int size ) const;
private:
    mutable int m_buffer_size;
    mutable char* m_ptr_buffer;
};

// String.cpp
void String::reserve( int size ) const
{
    if( m_buffer_size < size ) {
        // reallocate buffer memory, then copy
        // current string there, then...
        m_buffer_size = size; // OK, because
                // m_buffer_size declared mutable
    }
}

void myfunc( String const& str ) {
    str.reserve( 1024 ); // Ok
}
<<<Index>>>