【问题标题】:Eclipse CDT "New Class" TemplateEclipse CDT“新类”模板
【发布时间】:2011-03-18 03:42:19
【问题描述】:

我使用 Eclipse CDT 已经有一段时间了,我很喜欢它,但是我想解决一些乏味的问题。

创建新文件时,选项之一是“新建”->“类”。我想知道是否有人知道编辑此“类”模板的“${declarations}”部分的方法。

更具体地说,我查看了“窗口”->“首选项”菜单,但找不到任何东西。我已经更改了“C/C++”->“代码样式”->“代码模板”和“C/C++”->“编辑器”->“模板”。两者中只有第一个实际上似乎改变了类创建时出现的内容,并且它不允许我更改“$ {declarations}”部分中的内容。有人知道怎么改吗?

谢谢, 克里斯

【问题讨论】:

    标签: templates eclipse-cdt


    【解决方案1】:

    首选项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) 变量将替换为 New Class 向导生成的任何代码。


    这意味着您可以通过手动触发编辑器模板之一来使用自定义模板,可能是通过使用 New Class 向导创建一个命名类,然后将标题中的默认类主体替换为您的自定义模板。

    或者您是否建议 New Class 向导缺少任何重要字段并且应该扩展?

    【讨论】:

    • 所有这些都是不错的选择。如果有一种简单的方法可以从字面上更改 $(declarations) 扩展的内容,那就太酷了,但这会很好。谢谢!
    【解决方案2】:

    或者您是否建议新建类向导缺少任何重要字段并且应该扩展?

    是的私人复制和分配操作员。

    【讨论】:

    • * 字 * 我完全同意。我希望有复选框来选择是否应该自动生成哪些常用的类方法。
    【解决方案3】:

    哦!终于找到答案了。

    1. 在 Eclipse CDT (Juno) 中,转到 File -> Preferences
    2. 导航到“首选项”窗口左侧面板上的以下窗格:C/C++ -> Code Style -> Code Templates
    3. Code Templates 窗口中,导航至Files -> C++ Header File
    4. 编辑头文件:
    5. 删除${declarations} 行,插入你自己的东西。

    这有点不幸的缺点是丢失了新职业向导会产生的一切。这可能会使您从新建类向导中选择的任何继承类或其他内容无效,但我尚未检查。

    这是我的 C++ 头文件模板:

    ${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} */
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      • 2014-04-03
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多