我假设我有Class C成员x,y,z,t,u,v
C c1,c2;
//...
c1.x = c2.x;
c1.u = c2.u;
c1.v = c2.v;
Run Code Online (Sandbox Code Playgroud)
这段代码可以压缩,以便我可以列出x, u, v吗?
编辑:动机是我有一个更新的类,但一些值不再计算,因为它们保持不变.
代码不能用任何合理的方法压缩(即避免使用宏和模糊机制).
但是,它可以封装在您的类的赋值运算符中.重载"="运算符并将所有这些赋值放在其正文中.那你只需要做c1 = c2.
当然,如果你的语义不是赋值的语义,你可以创建一个传统的方法AssignSomeFields(const C& other).然后打电话c1.AssignSomeFields(c2);.