#include <iostream>
#include <vector>

struct Guy ;

struct Girl
{
    std::vector<Guy*> boyfriends ;
};

struct Guy
{
    Guy( const std::string& n ) : name(n) {}
    const std::string name ;
    // ...
};

int main()
{
    Guy a( "a" ), b( "b" ), c( "c" ) ;

    Girl g ;

    g.boyfriends.push_back( &a ) ;
    g.boyfriends.push_back( &b ) ;

    for( std::size_t i = 0 ; i < g.boyfriends.size() ; ++i )
        std::cout << g.boyfriends[i]->name << ' ' ;
    std::cout << '\n' ;

    g.boyfriends.push_back( &c ) ;

    for( std::size_t i = 0 ; i < g.boyfriends.size() ; ++i )
        std::cout << g.boyfriends[i]->name << ' ' ;
    std::cout << '\n' ;
}
