gpt4 book ai didi

c++ - 查找类的成员变量列表及其类型?

转载 作者:可可西里 更新时间:2023-11-01 18:15:18 25 4
gpt4 key购买 nike

我从来没有听说过这可能,但希望它可能会问。
对于具有比这更多的成员变量的类:

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),有时也在析构函数中。我不得不添加/删除成员变量很多次,忘记初始化列表中的复制并在调试时发现遗漏了很久,这真的很烦人。

因此,我想知道是否有一种语法/逻辑可以通过它找出一个类的成员变量列表及其类型,以便我可以遍历它们并决定需要复制哪些在复制ctor中,哪些需要深度复制?

我不明白为什么 C++ 的创建者不能包含这样的工具,因为除了虚拟成员之外,变量的内存位置是连续的,而且它们的类型也是已知的。即使它们是外部的或虚拟的,类型和大小也会在运行时已知。那不应该吗?

最佳答案

C++ 中没有反射,因此您需要一个外部库来执行此操作。 C++ 的创建者没有实现此功能,因为它意味着性能损失,而性能是 C++ 的主要目标之一。

关于c++ - 查找类的成员变量列表及其类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6386404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com