2010-07-19 3 views
6

Eclipse CDT를 얼마 동안 사용해 왔지만 정말 좋아하지만 몇 가지 지루한 것들이 있습니다.Eclipse CDT "New Class"템플릿

새 파일을 만들 때 옵션 중 하나는 "새로 만들기"-> "클래스"입니다. 나는이 "클래스"템플릿의 "$ {declarations}"섹션을 편집하는 방법을 알고 있는지 궁금합니다.

즉, "창"-> "환경 설정"메뉴를 살펴본 결과 아무 것도 찾을 수 없었습니다. "C/C++"-> "코드 스타일"-> "코드 템플릿"과 "C/C++"-> "편집기"-> "템플릿"을 모두 변경했습니다. 두 클래스 중 첫 번째 클래스 만 클래스 생성시 나타나는 것을 실제로 변경하는 것으로 보이며 "$ {declarations}"섹션의 내용을 변경하지 못하게합니다. 아무도 이것을 변경하는 방법을 알고 있습니까?

덕분에, 크리스

답변

6

선호 C/C++ -> Editor -> Templates는 지원 문맥을 통해 수동으로 삽입 된 템플릿에 의해 사용된다. 새 파일을 만들고 clas을 입력하고 ctrl+space을 누르면 상황에 맞는 도움이됩니다. 두 개의 지원 제안 (키워드 제안서 및 템플릿 제안서)을 받아야합니다 (class을 입력하고 ctrl+space을 누르면 후자는 기본값으로 자동 실행됩니다).

템플릿 제안을 선택하면이 기본 설정에서 정의 할 수있는 템플릿에 따라 클래스 본문이 생성됩니다.


C/C++ -> Code Style -> Code Templates은 자동 생성에 사용됩니다. New Class 마법사를 사용하면 Default C++ Source templateDefault C++ Header template이 사용되고 $(declarations) 변수는 새 클래스 마법사에서 생성 된 코드로 바뀝니다.


은 당신이 가능 새로운 클래스 마법사로 명명 된 클래스를 생성 한 후 사용자 정의에 의해 헤더의 기본 클래스 본문 교체를 통해 수동으로 편집기 템플릿 중 하나를 트리거하여 사용자 정의 템플릿을 사용할 수 있음을 의미 주형.

또는 새 클래스 마법사에 중요한 필드가없고 확장해야한다고 제안합니까?

+0

모두 좋은 옵션입니다. 문자 그대로 $ (선언문)을 확장하는 쉬운 방법이 있다면 멋지 겠지만 멋지게 할 것입니다. 감사! –

2

또는 새 클래스 마법사에 중요한 필드가없고 확장해야한다고 제안합니까?

예 개인 복사 및 할당 연산자.

+0

* WORD * 전적으로 동의합니다. 일반적으로 사용되는 클래스 메소드를 자동으로 생성할지 여부를 선택하기위한 체크 박스를 갖고 싶습니다. – jvriesem

1

우! 마침내 대답을 찾았습니다.

  1. 이클립스 CDT (Juno)에서 File -> Preferences으로 이동하십시오.
  2. 환경 설정 창의 왼쪽 패널에서 다음 창으로 이동하십시오 : C/C++ -> Code Style -> Code Templates.
  3. Code Templates 창에서 Files -> C++ Header File으로 이동합니다.
  4. 헤더 파일을 편집하십시오.
  5. ${declarations} 줄을 제거하고 직접 삽입하십시오.

이것은 새로운 클래스 마법사가 생성하는 모든 것을 잃어 버리는 다소 불행한 단점이 있습니다. 이렇게하면 상속 된 클래스 나 새 클래스 마법사에서 선택할 수있는 다른 항목이 무효화 될 수 있지만 선택하지는 않았습니다. 이 도움이

${filecomment} 

#ifndef ${include_guard_symbol} 
#define ${include_guard_symbol} 

${includes} 

${namespace_begin} 

class ${type_name} 
{ 

public: 

    /* Default Constructor */ 
    ${type_name}(); 

    /* Deconstructor */ 
    virtual ~${type_name}(); 


private: 

    /* Disable the following by default */ 
    ${type_name}(const ${type_name}& other); 
    ${type_name}& operator=(const ${type_name}&); 

}; 

${namespace_end} 
#endif /* ifndef ${include_guard_symbol} */ 

희망 :

은 여기 내 C++ 헤더 파일 템플릿입니다!