我花在开发C ++应用程序上的大部分时间都浪费在实现类定义上。我的意思是类的原型设计然后创建它们各自的实现。
例如:
#ifndef FOO_H
#define FOO_H
class Foo
{
public:
Foo (const X& x, const Y& Y);
~Foo ();
void PerformXYZ (int Count);
};
#endif
现在我必须复制并粘贴,然后在每个函数上添加重复的Foo ::。
Foo::Foo (const X& x, const Y& Y)
{
}
Foo::~Foo ()
{
}
void Foo::PerformXYZ (int Count)
{
}
现在我将函数声明复制到各自的* .cpp文件中,删除空行,然后替换';'用“\ n {\ n \ n} \ n”。但是,我仍然需要为每个函数指定命名空间。
Eclipse,Vim或任何其他IDE /编辑器中是否有工具可以减轻开发人员的负担?
答案 0 :(得分:5)
在Visual Studio中,有一些工具可以添加函数和变量。工具可自动执行相关流程。但我从不使用它们:)
在Visual Assist X中,feature有助于为方法添加实现。这是最好的解决方案。
答案 1 :(得分:2)
在Visual Studio 2008中,您可以使用Project-> Add Class ...选项添加一个类(它将为您生成.h和.cpp文件)。但它非常原始,只编写构造函数和析构函数。添加类后,您可以转到类视图并使用“添加方法”菜单选项将类添加到类中。
答案 2 :(得分:2)
和你一样,我一直认为我作为C ++开发人员的时间浪费在编写繁琐的类定义上。到目前为止,我发现的唯一可以部分缓解这项工作的工具是VisualAssistX,正如其他海报中提到的那样。
虽然没有完全消除编写类定义的需要,但VA X有一些很好的“重构”方法可以帮助这个领域。例如,您可以创建方法声明,它将自动为您创建实现主体。您还可以执行“添加类似成员”之类的操作,该操作会使用现有方法的数据填充“添加成员”对话框,或者更改函数的签名并将其自动传播到cpp和h文件。
这不是免费的,但物有所值。
的Jeroen
答案 3 :(得分:1)
对于 vim ,我维护的this suite提供了类片段(可以根据您的需要轻松调整)。
注意:每个函数定义的生成都可以使用命令:GOTOIMPL
自动生成,但必须在函数之后执行。
答案 4 :(得分:1)
Eclipse确实在它的重构菜单中有与此相关的内容,虽然我已经有一年没用了它,也不记得任何细节。
答案 5 :(得分:0)
Zeus editor可以配置为使用它的模板功能执行此操作,如下所示。
第1步:创建一个如下所示的 c:\ temp \ test.tpl 文件:
#ifndef $Word_H
#define $Word_H
class $Word
{
public:
$Word (const X& x, const Y& Y);
~$Word ();
void PerformXYZ (int Count);
};
#endif
$Word::$Word (const X& x, const Y& Y)
{
}
$Word::~$Word ()
{
}
void $Word::PerformXYZ (int Count)
{
}
第2步:使用模板,选项菜单添加以下模板:
$ExpandTemplate<c:\temp\test.tpl>
第3步:使用文件,新建菜单,输入单词 Bar ,将光标放在单词 Bar上并运行新创建的模板,您将收到以下文字:
#ifndef Bar_H
#define Bar_H
class Bar
{
public:
Bar (const X& x, const Y& Y);
~Bar ();
void PerformXYZ (int Count);
};
#endif
Bar::Bar (const X& x, const Y& Y)
{
}
Bar::~Bar ()
{
}
void Bar::PerformXYZ (int Count)
{
}