С++ фрагмент кода для новой поздравительной открытки для детей

Один мой друг прислал мне этот фрагмент кода, чтобы отпраздновать его новое рождение ребенка:

void new_baby_name() { father_surname++; }

Отрывок с его точки зрения, он отец, а новый ребенок получает от него фамилию.

Я ответил:

class father_name {};
class mother_name {};
class new_baby_name: public father_name, public mother_name {};

Но я не полностью удовлетворен своим ответом...

Ответ 1

Правильный ответ:

Sleep(0);

Ответ 2

class baby
{
public:
    vector<gene> genes;
    baby(baby* logical_father, baby* biological_mother, baby* other)
    {

        int i;
        if (other == null)
        {
            for (i = 0; i < logical_father->genes.size())
            {
                if (rand() > 0.5)
                {
                    genes.push_back(logical_father->genes[i]);
                }
                else
                {
                    genes.push_back(biological_mother->genes[i]);
                }
            }
        }
        else
        {
            for (i = 0; i < other->genes.size())
            {
                if (rand() > 0.5)
                {
                    genes.push_back(other->genes[i]);
                }
                else
                {
                    genes.push_back(biological_mother->genes[i]);
                }
            }
        }
    }
}

Существуют, конечно, другие методы для создания ребенка.

Ответ 3

destroy Sanity();

Может не запускаться, может стекать переполнение. Я плохо себя понимаю.

Ответ 4

Просто небольшое исправление, чтобы избежать плохих имен:

class male {};
class female {};

class father_name {};
class mother_name {};

template <class gender>
class new_baby_name;

template <>
class new_baby_name<male>: public father_name {};

template <>
class new_baby_name<female>: public mother_name {};

Обратите внимание, что у вас есть серьезная проблема, если это должно привести к ошибке компилятора; -)