一个新的婴儿贺卡的C++代码片段

Ale*_*son 10 c++

我的一个朋友给我发了这段代码片段来庆祝他的新生婴儿:

void new_baby_name() { father_surname++; }
Run Code Online (Sandbox Code Playgroud)

该片段是从他的角度来看,他是父亲,新生儿从他那里得到了姓氏.

我回答说:

class father_name {};
class mother_name {};
class new_baby_name: public father_name, public mother_name {};
Run Code Online (Sandbox Code Playgroud)

但我对我的回答并不完全满意......

Jas*_*ams 31

正确的答复是:

Sleep(0);
Run Code Online (Sandbox Code Playgroud)


Sim*_*mon 8

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]);
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,还有其他构建婴儿的方法.

  • @Simon:基因只能从生父中继承,而不能从逻辑父亲那里继承. (5认同)
  • 如果你开始确定父亲是谁,但是没有......这会更简单 (4认同)
  • 呃,所有这些针支撑的丑陋风格 - 以及不必要的功能范围的`int`也是如此.将该代码放入一个少于六行的函数中,并且ctor变成一个单行.哦,并且使用正确的标识符名称(`biological_father`)Manav(以及 - 迄今为止 - 其他三个投票他的评论的人)不会误解"其他". (2认同)