编译器错误 C2600 - C2699
本文档部分提到的文章解释了编译器生成的一部分错误消息。
重要
Visual Studio 编译器和生成工具可报告多种类型的错误和警告。 发现错误或警告后,生成工具可做出有关代码意向的假设并尝试继续,因此,可能会同时报告更多问题。 如果工具做出错误假设,则后续错误或警告可能不适于你的项目。 纠正项目中的问题时,请始终先纠正报告的第一个错误或警告,然后在通常情况下重新生成。 一个修补程序可能会使许多后续错误消失。
若要在 Visual Studio 中获取有关特定诊断消息的帮助内容,请在“输出”窗口中选择该消息,然后按 F1 键。 Visual Studio 会打开该错误的文档页(如果存在)。 还可以使用页面顶部的搜索工具查找有关特定错误或警告的文章。 或者,按工具浏览错误和警告列表,并在此页面上的内容列表中键入内容。
注意
并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果在使用 F1 时登陆此页,并且认为错误或警告消息需要额外的解释,请告诉我们。 可以使用此页面上的反馈按钮在 GitHub 上提出文档问题。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择“帮助”>“发送反馈”>“报告问题”,或者使用“帮助”>“发送反馈”>“发送建议”提交建议。 创建了一些编译程序错误主题,这些主题不是由编译程序发出的,但现在会重定向到此页面。
可以在 Microsoft Learn Q&A 论坛上查找有关错误和警告的其他帮助。 或者,在 Visual Studio C++ 开发者社区网站上搜索错误或警告编号。 还可以搜索 Stack Overflow 以查找解决方案。
有关指向其他帮助和社区资源的链接,请参阅 Visual C++ 帮助和社区。
错误消息
错误 | Message |
---|---|
编译器错误 C2600 | “function”: 不能定义编译器生成的特殊成员函数(必须首先在类中声明) |
编译器错误 C2601 | “function”: 本地函数定义非法 |
编译器错误 C2602 | “class::Identifier”不是“class”基类的成员 |
编译器错误 C2603 | “function”: 函数中带有构造函数/析构函数的块范围静态对象太多 |
编译器错误 C2604 | “identifier”: 无法实现多个接口方法 |
编译器错误 C2605 | “identifier”: 此方法是托管/WinRT 类中的保留方法 |
编译器错误 C2606 | “class1”: 无法重新实现“member”,因为它继承自运行时基类“class2” |
编译器错误 C2607 | 静态断言失败 |
编译器错误 C2608 | 已过时。 |
编译器错误 C2609 | 已过时。 |
编译器错误 C2610 | “class::member”: 不是可设置默认值的特殊成员函数 |
编译器错误 C2611 | “token”:“~”后面包含非法字符(需要标识符) |
编译器错误 C2612 | 基/成员初始化表达式列表中包含非法的尾部“character” |
编译器错误 C2613 | 基类列表中包含非法的尾部“character” |
编译器错误 C2614 | “class”: 非法的成员初始化:“identifier”不是基或成员 |
编译器错误 C2615 | 已过时。 |
编译器错误 C2616 | “conversion”: 无法隐式将非左值“type1”转换为非常量的“type2” |
编译器错误 C2617 | “function”: return 语句不一致 |
编译器错误 C2618 | 已过时。 |
编译器错误 C2619 | “identifier”: 匿名结构/联合中不允许使用静态数据成员 |
编译器错误 C2620 | 已过时。 |
编译器错误 C2621 | 已过时。 |
编译器错误 C2622 | 已过时。 |
编译器错误 C2623 | 已过时。 |
编译器错误 C2624 | “scope::type”: 局部类不能用于声明“extern”变量 |
编译器错误 C2625 | “identifier”: 非法的联合成员;类型“type”是引用类型 |
编译器错误 C2626 | “identifier”: 匿名结构/联合中不允许使用专用/受保护的数据成员 |
编译器错误 C2627 | “function”: 匿名联合中不允许有成员函数 |
编译器错误 C2628 | “type2”前面的“type1”非法(忘记了“;”吗?) |
编译器错误 C2629 | “identifier”: 匿名结构/联合不能声明嵌套类型 |
编译器错误 C2630 | 在应是逗号分隔列表的位置找到了“symbol” |
编译器错误 C2631 | “identifier”: 别名模板中不能定义类或枚举 |
编译器错误 C2632 | “type2”前面的“type1”非法 |
编译器错误 C2633 | “identifier”:“inline”是构造函数的唯一合法存储类 |
编译器错误 C2634 | “class::member”: 指向引用成员的指针是非法的 |
编译器错误 C2635 | 不能将“type1*”转换为type2*”;暗含了从虚拟基类的转换 |
编译器错误 C2636 | “identifier”: 指向引用成员的指针是非法的 |
编译器错误 C2637 | “identifier”: 不能修改指向数据成员的指针 |
编译器错误 C2638 | "identifier": 指向成员的指针上的 __based 修饰符非法 |
编译器错误 C2639 | 已过时。 |
编译器错误 C2640 | “identifier”: 引用上的 __based 修饰符非法 |
编译器错误 C2641 | 已过时。 |
编译器错误 C2642 | 已过时。 |
编译器错误 C2643 | 已过时。 |
编译器错误 C2644 | 已过时。 |
编译器错误 C2645 | 指向成员的指针没有限定名(找到“:: *”) |
编译器错误 C2646 | 全局或命名空间范围的匿名结构/联合必须声明为静态 |
编译器错误 C2647 | “operator”: 无法在“type2”上取消引用“type1” |
编译器错误 C2648 | “identifier”: 将成员用作默认参数需要静态成员 |
编译器错误 C2649 | “identifier”: 不是“class/struct/union” |
编译器错误 C2650 | “operator”: 不能是虚拟函数 |
编译器错误 C2651 | “type”:“::”的左边必须是类、结构或联合 |
编译器错误 C2652 | “identifier”: 非法复制构造函数: 第一个参数不得为“type” |
编译器错误 C2653 | “identifier”: 不是类或命名空间名称 |
编译器错误 C2654 | “identifier”: 尝试访问成员函数外部的成员 |
编译器错误 C2655 | “identifier”: 当前范围内的定义或重新声明非法 |
编译器错误 C2656 | “function”: 函数不能作为位域 |
编译器错误 C2657 | 在语句的开头找到“class::*”(是否忘记指定类型?) |
编译器错误 C2658 | “identifier”: 匿名结构/联合中的重定义 |
编译器错误 C2659 | “operator”: 函数用作左操作数 |
编译器错误 C2660 | “function”: 函数不采用 number 参数 |
编译器错误 C2661 | “function”: 没有重载函数采用 number 参数 |
编译器错误 C2662 | “function”: 无法将“this”指针从“type1”转换为“type2” |
编译器错误 C2663 | “function”: number 重载对“this”指针没有合法转换 |
编译器错误 C2664 | “function”: 无法将参数 number 从“type1”转换为“type2” |
编译器错误 C2665 | “function”: 没有任何 number 重载可以转换所有参数类型 |
编译器错误 C2666 | “function”: number 重载具有类似的转换 |
编译器错误 C2667 | “function”: number 重载都没有最佳转换 |
编译器错误 C2668 | “function”: 对重载函数的调用不明确 |
编译器错误 C2669 | 匿名联合中不能使用成员函数 |
编译器错误 C2670 | “function”: 函数模板无法从类型“type”转换参数 number |
编译器错误 C2671 | “function”: 静态成员函数没有“this”指针 |
编译器错误 C2672 | “function”: 未找到匹配的重载函数 |
编译器错误 C2673 | “function”: 全局函数没有“this”指针 |
编译器错误 C2674 | 在此上下文中不允许出现泛型声明 |
编译器错误 C2675 | 一元“operator”:“type”不定义该运算符或到预定义运算符可接收类型的转换 |
编译器错误 C2676 | 二元“operator”:“type”不定义该运算符或到预定义运算符可接收类型的转换 |
编译器错误 C2677 | 二元“operator”: 没有找到接受“type”类型的全局运算符(或没有可接受的转换) |
编译器错误 C2678 | 二元“operator”: 未找到采用“type”类型左侧操作数的运算符(或者没有可接受的转换) |
编译器错误 C2679 | 二元“operator”: 未找到采用“type”类型右侧操作数的运算符(或者没有可接受的转换) |
编译器错误 C2680 | “type”: cast 的目标类型无效 |
编译器错误 C2681 | “type”: cast 的表达式类型无效 |
编译器错误 C2682 | 不能使用“cast”从“type1”转换为“type2” |
编译器错误 C2683 | “cast”:“type”不是多态类型 |
编译器错误 C2684 | “declarator”: 托管/WinRT 类中不支持删除的和默认的函数 |
编译器错误 C2685 | “declarator”: 显式限制说明符不支持删除的和默认的函数 |
编译器错误 C2686 | 不能重载具有相同参数类型的静态和非静态成员函数 |
编译器错误 C2687 | “type”: 异常声明不能为“void”,也不能表示不完整类型或指向不完整类型的指针或引用 |
编译器错误 C2688 | “type::member”: 协变返回不支持用于 varargs 函数的多重或虚拟继承 |
编译器错误 C2689 | “function”: 不能在局部类中定义友元函数 |
编译器错误 C2690 | “operator”: 不能对托管/WinRT 数组执行指针算术 |
编译器错误 C2691 | “type”: 托管/WinRT 数组元素不能有此元素类型 |
编译器错误 C2692 | “function”:“/clr”选项要求 C 编译器中完全保持原型的函数 |
编译器错误 C2693 | “operator”: 比较托管/WinRT 数组的引用是非法的 |
编译器错误 C2694 | “override_function”: 重写虚拟函数的限制性异常规范比基类虚成员函数“base_function”少 |
编译器错误 C2695 | “override_function”: 重写虚拟函数只是在调用约定方面不同于于“base_function” |
编译器错误 C2696 | 无法创建托管/WinRT 类型“type”的临时对象 |
编译器错误 C2697 | 已过时。 |
编译器错误 C2698 | “declaration1”的 using 声明不能与“declaration2”的现有 using 声明共存 |