通用Mutator / Accessor函数

时间:2019-06-07 07:32:30

标签: c++ accessor mutators

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

2 个答案:

答案 0 :(得分:1)

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

您也许可以使用一些macro-magic(有其所有的陷阱),否则您的选择会很渺茫。

答案 1 :(得分:0)

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

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

  2. 您可以编写一个简短的Shell脚本或python脚本,以在给定一个文本文件的情况下自动生成get,set方法,该文本文件的每一行均包含名称和变量类型。

  3. 默认情况下,struct的所有成员都是公共的。因此使用struct。或者,如果您决定使用类,则将所有数据成员放在公共部分。如果除了简单设置外没有执行其他任何操作,则可以这样做。但是,如果您遇到有关数据成员更改的问题,调试将很繁琐。