将结构的一部分分配给c中的另一个结构

时间:2014-04-18 22:48:57

标签: c++ c struct

我想在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;

但对我来说有点难看。有没有更明确的解决方案呢? 可能它类似于扩展结构或什么?

3 个答案:

答案 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