Nav*_*Nav 7 c++ copy-constructor
我从来没有听说过这是可能的,但希望可能会这样想.
对于具有比此更多成员变量的类:
class A
{
public:
SomeOtherClass* s;
int i;
int j;
A() {}
A(const A& soc): s(soc.s->Clone()), i(soc.i), j(soc.j) {}
};
Run Code Online (Sandbox Code Playgroud)
我总是要记住,如果我int k在类中添加另一个变量,我还必须在初始化列表中添加它k(soc.k),有时也在析构函数中添加它.我不得不多次添加/删除成员变量,忘记初始化列表中的复制并在调试时发现遗漏的确很烦人.
因此,我想知道是否有一个语法/逻辑,通过它我可以找到一个类的成员变量列表及其类型,以便我可以迭代它们并决定哪些需要在副本中复制ctor以及哪些需要被深深复制?
我不明白为什么C++的创建者不能包含这样的工具,因为除了虚拟成员之外,变量的内存位置也是连续的,它们的类型也是已知的.即使它们是extern或virtual,也会在运行时知道类型和大小.那不应该可能吗?
dar*_*mos 11
C++中没有反射,因此您需要一个外部库来执行此操作.C++的创建者没有实现这个功能,因为它意味着性能损失,性能是C++的主要目标之一.
| 归档时间: |
|
| 查看次数: |
9912 次 |
| 最近记录: |