我想在c / c ++中概念性地使用这样的东西
struct first{
int a,b,c;
}my1;
struct second{
int a,b,c;
int extended;
}my2;
并以某种方式能够拥有
my2=my1;
(意思是只复制相同的部分。保持不变)
我想把它解决为
struct second{
first first_;
int extended;
}my2;
并且
my2.first_ = my1;
但对我来说有点难看。有没有更明确的解决方案呢? 可能它类似于扩展结构或什么?
答案 0 :(得分:2)
就像那样:
struct second : first
{
int extended;
second& operator=(const first& f)
{
first::operator=(f); extended = 0; return *this;
}
};
答案 1 :(得分:1)
有点同样难看,但现在是:
my1 = *(first*)&my2;
答案 2 :(得分:0)
您可以重载=
的{{1}}运算符:
struct second