泛型突变器/访问器函数

Generic Mutator/Accessor functions

本文关键字:函数 访问 泛型 突变      更新时间:2023-10-16

有没有办法在C++中创建泛型set/get函数?我有一个具有大量属性但没有函数的类(好吧,我可能应该使用结构(,并且真的不想为每个数据成员编写单独的集合和获取函数。我想到的函数类似于'set_member(T变量(,其中T可以是任何东西,原始类型或用户定义。我想也许你可以创建一个结构体作为成员的结构,然后每当你想访问成员结构的特定成员时,你都会通过适当的指针引用它。我尝试过写一些东西来实现这一目标,但到目前为止还没有运气。

C++(据我所知(没有内置的方法来自动生成setter/getter函数。

你也许可以施展一些宏观魔法(及其所有陷阱(,否则你的选择很渺茫。

我可以想到以下替代方案:

  1. 某些 IDE 会自动为类的数据成员生成 get 和 set 方法。我不确定C++ IDE 是否可行。但我知道Eclipse IDE for Java可以做到这一点。您可以检查一次 Eclipse IDE for C++ 是否具有此功能。

  2. 您可以编写一个简短的shell脚本或python脚本,用于自动生成get,set方法,给定一个文本文件,其中包含每行中的变量名称和类型。

  3. 默认情况下,结构的所有成员都是公共的。所以使用结构。或者,如果您决定使用类,则将所有数据成员放在公共部分中。如果您不做简单设置以外的任何操作,那么这样做可能是可以的。但是,如果遇到数据成员更改问题,调试将很乏味。