Image loader/writer design (no API, pure C++ on Windows)
The only standard ways to access private data from another class are:


Getters  
Friend class


If you want to make a friend class, just do something like this:

class Writer ;

class BMP
{
    //...
private:
friend class Writer ;
}


Now the Writer class can access all of BMP's data fields.  

I would personally suggest using getters though. You could have getters for the header information and use operator [] for accessing any arrays.

unsigned char&amp; BMP::operator [] (const size_t i) {
    return m_data [i] ;
}

const unsigned char&amp; BMP::operator [] (const size_t i) const {
    return m_data [i] ;
}