2009-07-20 5 views
6

C++ 응용 프로그램 개발에 많은 시간을 소비하는 것이 클래스 정의를 구현하는 데 낭비됩니다. 그 말은 클래스의 프로토 타이핑을 의미하며 각각의 구현을 만듭니다.편집기에서 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 (const X& x, const Y& Y) 
{ 

} 

Foo::~Foo() 
{ 

} 

void Foo::PerformXYZ (int Count) 
{ 

} 

지금은 함수 선언을 각각의 * .cpp 파일에 복사하고 빈 줄을 제거한 다음 ';' "\ n {\ n \ n} \ n"을 (를) 사용하십시오. 그러나 각 함수의 네임 스페이스를 지정해야합니다.

이 부담을 개발자에게 줄 수있는 Eclipse, Vim 또는 다른 IDE/편집기에 도구가 있습니까?

+0

남자, 우리는 같은 루틴을 가지고 있습니다 :) – GManNickG

+0

당신은 이것이 존재할 것이라고 생각합니다 (매우 유용 할 것입니다). 아무도 대답이 나오지 않으면 플러그인이나 프로그램을 작성하는 것에 대해 생각해야합니다. – Kredns

답변

5

Visual Studio에는 함수와 변수를 추가하는 도구가 있습니다. 도구가 문제의 프로세스를 자동화합니다. 하지만 나는 결코 사용하지 않습니다.

Visual Assist X에는 메소드 구현을 돕는 feature이 있습니다. 최상의 솔루션입니다.

+0

+1 시각 보조. – peterchen

+0

이 도구를 사용하여 코드를 생성 할 수있는 것보다 빠르게 코드를 작성할 수 있으므로이 GUI 도우미가 제한적으로 사용됩니다. 즉, 질문자가 제안하는 것이 시간을 절약하는 것이라고 생각합니다. –

2

Visual Studio 2008에서는 Project-> Add Class ... 옵션을 사용하여 클래스를 추가 할 수 있습니다 (.h 및 .cpp 파일이 생성됩니다). 그러나 매우 원시적이며 생성자와 소멸자 만 씁니다. 클래스를 추가 한 후 클래스 뷰로 이동하여 '메소드 추가'메뉴 옵션을 사용하여 메소드를 클래스에 추가 할 수 있습니다.

0

Zeus editor은 다음과 같이 템플릿 기능을 사용하여이를 구성 할 수 있습니다.

#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 단계 :템플릿을 사용하여 옵션 메뉴는 추가 할

1 단계 : \ test.tpl 다음과 같습니다 파일 : \ temp와C 만들기 다음 템플릿 :

$ExpandTemplate<c:\temp\test.tpl> 

3 단계 : 사용 파일, 새로 메뉴, 단어 의 유형, 단어 에 커서를 놓고 새로 만든 템플릿을 실행하고이 텍스트 얻을 : 당신처럼

#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) 
{ 
} 
2

을, 나는 오랫동안 생각을 가지고 C++ 개발자로서의 내 시간은 지루한 클래스 정의를 작성하는 데 낭비됩니다. 지금까지 발견 한 유일한 도구는 VisualAssistX입니다.이 포스터는 다른 포스터 중 하나로서 언급됩니다.

VA X는 클래스 정의를 작성하지 않아도되지만이 영역에서 도움이되는 멋진 "리팩토링"방법을 제공합니다. 예를 들어 메소드 선언을 작성하면 자동으로 구현 본문이 작성됩니다. "멤버 추가"대화 상자에 기존 메서드의 데이터를 채우거나 함수의 서명을 변경하여 cpp 및 h 파일 모두에 자동으로 전파시키는 "유사한 멤버 추가"와 같은 작업을 수행 할 수도 있습니다.

돈이 들지는 않지만 무료입니다. 정력를 들어

제론

1

을, 나는 (쉽게 여러분의 필요에 적용 할 수 있습니다) 클래스 미리보기를 제공 this suite을 유지하고있다.

NB : 각 기능 정의의 생성은 :GOTOIMPL 명령으로 자동화 할 수 있지만 기능 후에 기능을 수행해야합니다.

1

Eclipse는 확실히 리팩토링 메뉴에서 이와 관련이 있습니다. 그러나 1 년 동안 사용해 본 적이 없으며 구체적인 것은 기억하지 못합니다.