c++ - 有没有一种方法可以选择我想要分配的一个实例的哪些成员,而无需手动分配它们

标签 c++ class

假设我有 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/

相关文章:

c++ - 创建 C++ API 库

function - 我想磨练我对重要概念的理解

android - java.lang.RuntimeException : Unable to instantiate activity ComponentInfo//java. lang.ClassNotFoundException 异常

c++ - 新矩阵[N][N]失败

c++ - 为什么将 int 向上移位会产生负数?

C++ 访问函数参数私有(private)变量

java - JVM如何存储类的元信息?

c++ - Qt5+ 中的可拆卸选项卡

php - 类构造函数干扰另一个类

c# - C# 中的 Selenium WebDriver - "By"类扩展