You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改VS2017 AddClass向导默认C++类模板(适配预编译头)

修改Visual Studio C++添加类向导模板(适配预编译头)

你不需要从零开发VS扩展,直接修改Visual Studio内置的C++类模板文件就能实现需求,具体步骤如下:

1. 找到C++类模板的路径

对于VS2017 Enterprise,C++类模板的存放路径为:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ItemTemplates\VC\Code\1033\Class
  • 其他VS版本(如2019/2022)只需将路径中的2017替换为对应版本号即可
  • 路径中的1033是英文语言代码,若使用其他语言版本,替换为对应语言代码即可

该目录下包含两个核心模板文件:Class.h和Class.cpp,直接修改这两个文件就能自定义添加类向导生成的代码。

2. 修改模板适配预编译头并扩展内容

修改Class.h模板

替换原内容为适配预编译头、包含自定义构造/析构函数及字段的模板代码:

#pragma once
#include "pch.h" // 适配预编译头,若项目预编译头文件名不同可替换为实际名称

class $safeitemrootname$
{
private:
    // 自定义私有字段示例
    int m_internalId;
    std::string m_internalName;

public:
    // 默认构造函数
    $safeitemrootname$();
    // 带参数构造函数
    $safeitemrootname$(int id, const std::string& name);

    // 可选虚析构函数
    virtual ~$safeitemrootname$();

    // 自定义公有关键字段示例
    bool m_isEnabled;
    double m_calculatedValue;
};

修改Class.cpp模板

替换原内容为对应构造/析构函数的实现:

#include "pch.h" // 适配预编译头
#include "$safeitemrootname$.h"

$safeitemrootname$::$safeitemrootname$()
    : m_internalId(0), m_internalName(""), m_isEnabled(false), m_calculatedValue(0.0)
{
}

$safeitemrootname$::$safeitemrootname$(int id, const std::string& name)
    : m_internalId(id), m_internalName(name), m_isEnabled(false), m_calculatedValue(0.0)
{
}

$safeitemrootname$::~$safeitemrootname$()
{
}

3. 生效与注意事项

  • 修改完成后重启Visual Studio,或执行命令devenv /installvstemplates刷新模板缓存
  • 模板中的$safeitemrootname$是VS内置变量,会自动替换为你在添加类向导中输入的类名
  • 建议修改前备份原模板文件,避免修改出错无法恢复
  • 若项目使用的预编译头文件名不是pch.h,将模板中的#include "pch.h"替换为项目实际的预编译头文件名即可

内容的提问来源于stack exchange,提问作者Eris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 14:24:19