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代码>而不定义它会起作用吗?