【发布时间】:2010-11-02 17:12:50
【问题描述】:
我正在创建一个包含许多双(或其他东西,类型无关紧要)成员的类。
class CalcParameters {
public:
CalcParameters() {}
~CalcParameters() {}
// getters and setters here
private:
double _param1;
double _param2;
...
};
是否可以在 Vim 中编写脚本为每个参数自动生成公共 getter 和 setter?
喜欢
double param1() const { return _param1; }
void setParam1(double param1) { _param1 = param1; }
...
注意:
此代码不是真实代码的 sn-p,而只是我为说明问题而编写的内容。在我的真实工作代码中,成员被命名,并且除了属性之外,setter 还具有验证逻辑。但是当编写一个包含所有成员的骨架类时,让 Vim 为我创建基本的 getter 和 setter 会很好。这可能吗?
【问题讨论】:
-
您的对象设计可能有问题。你永远不应该需要“许多 getter 和 setter”。
-
这确实可以用 Vim 宏来完成。事实上,很容易。但无论如何,这段代码都被破坏了。 @Vitor Py:我建议重新考虑你的设计,而不是使用编辑器来自动化你一开始不应该做的事情。
-
@Charles: _ + 小写字母适用于成员名称。只有 _ + 大写是全局保留的。
-
@Roger:前导下划线允许什么和不允许什么有一些规则(取决于下一个字符和链接)。我更喜欢通过没有前导下划线来避免整个问题。
-
@David:是的,对于涉及下划线的保留标识符有 3 条简单的规则。我们是否应该通过在标识符中禁止下划线来“避免整个问题”?