c++ - 构造函数定义可以以 "class"关键字为前缀吗?

标签 c++ visual-studio-2012 visual-studio-2013 compiler-bug

请告诉我为什么当我将构造函数视为一个没有私有(private)和公共(public)部分的类时我的程序被编译和执行,只需在它前面写单词 class 如下:

class sample
{
private:
    int a,b;

public:
    class sample(int a1){a = a1;}
};

最佳答案

那是无效的,我的编译器拒绝了它。构造函数必须使用类名声明,没有类键(即没有 classstructunion 关键字)。

也许您的编译器接受详细的类型说明符作为构造函数名称;但如果是这样,那就是非标准扩展,您不应该依赖它。如果幸运的话,编译器可能会提供一个禁用扩展的选项,如果您不想永远依赖于该编译器,则应该使用该选项。

关于c++ - 构造函数定义可以以 "class"关键字为前缀吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24940631/

相关文章:

Visual Studio 11 中的 c++11 thread_local 关键字支持

regex - Visual Studio Find 使用正则表达式查找

c++ - 为什么 std::pair 类标准更改为不允许在 C++11 中仅具有非常量复制构造函数的类型?

c++ - lua 5.2.1 Unresolved external 问题

c++ - 升级到VS2012导致由于VC++运行时不同而崩溃?

sql-server - 如何解决 Visual Studio 2013 SSDT SQL71562 警告?

TFS 2013 : How to mark task as tested?

c++ - DwmIsCompositionEnabed 不存在于 afxglobals.h 中

c++ - 如何使 "strtok function"一次处理多个 token 字符串?函数指针能解决这个问题吗?

c# - 基于每个元素调试 LINQ