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

C++ C++;新婴儿贺卡的代码片段,c++,C++,我的一个朋友给我发了这个代码片段来庆祝他的新生儿出生: void new_baby_name() { father_surname++; } 这个片段是从他的角度来看的,他是父亲,新生婴儿的姓氏来自他 我这样回答: class father_name {}; class mother_name {}; class new_baby_name: public father_name, public mother_name {}; 但我对我的答案并不完全满意…班上的宝贝 class baby {

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

void new_baby_name() { father_surname++; }
这个片段是从他的角度来看的,他是父亲,新生婴儿的姓氏来自他

我这样回答:

class father_name {};
class mother_name {};
class new_baby_name: public father_name, public mother_name {};
但我对我的答案并不完全满意…

班上的宝贝
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]);
                }
            }
        }
    }
}
{ 公众: 载体基因; 婴儿(婴儿*逻辑父亲,婴儿*生物母亲,婴儿*其他) { int i; 如果(其他==null) { 对于(i=0;igenes.size()) { 如果(rand()>0.5) { 基因。推回(逻辑父亲->基因[i]); } 其他的 { 基因。推回(生物母亲->基因[i]); } } } 其他的 { 对于(i=0;igenes.size()) { 如果(rand()>0.5) { 基因。推回(其他->基因[i]); } 其他的 { 基因。推回(生物母亲->基因[i]); } } } } }
当然,还有其他的方法来构造婴儿

destroy Sanity();

可能无法运行,可能堆栈溢出。我不擅长c。

只是一个小错误,以避免坏名字:

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 {};
class男性{};
阶级女性{};
班级名称{};
班级名称{};
模板
类新名称;
模板
班级新宝宝名:公共爸爸名{};
模板
班级新宝宝名:公共妈妈名{};
请注意,如果这会引发编译器错误,则会出现严重问题;-)

正确的回答是:

Sleep(0);

添加名字作为隐私和其他属性,如眼睛颜色、头发颜色、血型、DNA轮廓等都是可以保护的。这样的笑话根本不能避免C++中的<代码>朋友< /代码>的老笑话……这显然是一种构图设计而不是继承的情况。通常,OOP范式不能正确和准确地模拟现实世界…我把“C”从标题和标签中删除,因为这是明显的C++。如果有人给我发了一张贺卡,上面写着,我会跑过去,永远不会回头。另一方面,没有人会给我寄贺卡,因为我是一个刻薄的混蛋:)母亲和父亲都是
婴儿
,如果你先确定父亲是谁会更简单,但是没有…@西蒙:基因只能从亲生父亲那里遗传,而不能从逻辑父亲那里遗传。啊,这是一种多么丑陋的风格,有这么多的针和支架,还有一个不必要的函数作用域
int
。将该代码放入一个少于六行的函数中,ctor就变成了一行。哦,有了正确的识别名(
biological_father
)Manav(以及——到目前为止——另外三位投票支持他的评论的人)不会误解
other
@sbi,我不知道你被任命为代码式警察。那是什么时候发生的?实际上,我更喜欢这样,它在语法上没有什么问题,一行构造函数也没有什么好处。此外,在询问变量名时,您还表现出了您缺乏微妙之处。再看一遍,想想现实世界。那实际上是
~Sanity()哪个调用了Sanity的析构函数。为什么从compiletime错误继承,当然只是声明
类new\u baby\u name而不定义它会起作用吗?