Probabilistic matchmaking simulation
There doesn't seem to be a need for separate Male and Female structures as they hold the same exact data.  Instead, just have one named Person and create male and female instances of it.

You also don't need classes if you're not going to have any private data; just use structs.

struct Person
{
    bool isMarried;
    int salary;

    Person() : isMarried(false) {}
};




Person males[MALES];
Person females[FEMALES];

Regarding the use of C++11, you can start by removing both std::srand() and std::rand() and replacing them with functionality from the &lt;random&gt; library, particularly std::shuffle().