编辑器中的C ++自动类实现

时间:2009-07-20 04:16:33

标签: c++ editor

我花在开发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 /编辑器中是否有工具可以减轻开发人员的负担?

6 个答案:

答案 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)
{
}