假设我有 C 类
,它有成员 x,y,z,t,u,v
C c1,c2;
//...
c1.x = c2.x;
c1.u = c2.u;
c1.v = c2.v;
是否可以压缩此代码以便我可以只列出 x, u, v
?
编辑:动机是我有一个得到更新的类,但一些值不会再次计算,因为它们保持不变。
最佳答案
不能用任何合理的方法(即避免宏和晦涩的机制)压缩代码。
但是,它可以封装在您的类的赋值运算符中。重载“=”运算符并将所有这些赋值放在它的主体中。然后你只需要做 c1 = c2。
当然,如果您的语义不是赋值语义,您可以创建一个传统方法AssignSomeFields(const C& other)
。然后只需调用 c1.AssignSomeFields(c2);
。
关于c++ - 有没有一种方法可以选择我想要分配的一个实例的哪些成员,而无需手动分配它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235137/