我从未听说过这是可能的,但希望询问一下。
对于一个具有比这个更多成员变量的类:
我必须记住,如果我向类中添加另一个变量
因此,我想知道是否有一种语法/逻辑可以找出类的成员变量列表及其类型,这样我就可以遍历它们并决定哪些需要在复制构造函数中复制,哪些需要进行深度复制?
我不明白为什么C++的创建者不能包含这样的功能,因为除了虚拟成员外,变量的内存位置是连续的,它们的类型也是已知的。即使它们是extern或virtual,类型和大小也会在运行时知道。所以这不应该是可能的吗?
对于一个具有比这个更多成员变量的类:
class A
{
public:
SomeOtherClass* s;
int i;
int j;
A() {}
A(const A& soc): s(soc.s->Clone()), i(soc.i), j(soc.j) {}
};
我必须记住,如果我向类中添加另一个变量
int k
,我也必须在初始化列表k(soc.k)
和有时在析构函数中添加它。我不断地添加/删除成员变量,忘记在初始化列表中复制它们并在调试时很久以后发现遗漏,这真的很烦人。因此,我想知道是否有一种语法/逻辑可以找出类的成员变量列表及其类型,这样我就可以遍历它们并决定哪些需要在复制构造函数中复制,哪些需要进行深度复制?
我不明白为什么C++的创建者不能包含这样的功能,因为除了虚拟成员外,变量的内存位置是连续的,它们的类型也是已知的。即使它们是extern或virtual,类型和大小也会在运行时知道。所以这不应该是可能的吗?