Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 类类型名称的重新声明_C++_Class_Declaration - Fatal编程技术网

C++ 类类型名称的重新声明

C++ 类类型名称的重新声明,c++,class,declaration,C++,Class,Declaration,考虑以下示例: void foo() { class A; class A; } int main() { foo(); return 0; } 这是很好的工作。为什么允许对类类型进行这种重新定义?我很困惑 请给我一个C++规范的引用,这样的重新声明是允许的…如果可能的话。§3.1 声明(第7条)可将一个或多个名称引入翻译单元,或重新声明先前声明引入的名称。 那是第一条 第二条规定了什么是声明。我没有在这里复制它,因为它包含了很多示例。§3.1 声明(第7条)

考虑以下示例:

void foo()
{
    class A;
    class A;
}

int main()
{
    foo();
    return 0;
}
这是很好的工作。为什么允许对类类型进行这种重新定义?我很困惑

请给我一个C++规范的引用,这样的重新声明是允许的…如果可能的话。

§3.1 声明(第7条)可将一个或多个名称引入翻译单元,或重新声明先前声明引入的名称。

那是第一条

第二条规定了什么是声明。我没有在这里复制它,因为它包含了很多示例。

§3.1 声明(第7条)可将一个或多个名称引入翻译单元,或重新声明先前声明引入的名称。

那是第一条

第二条规定了什么是声明。我没有在这里复制它,因为它包含了很多示例。

§3.1 声明(第7条)可将一个或多个名称引入翻译单元,或重新声明先前声明引入的名称。

那是第一条

第二条规定了什么是声明。我没有在这里复制它,因为它包含了很多示例。

§3.1 声明(第7条)可将一个或多个名称引入翻译单元,或重新声明先前声明引入的名称。

那是第一条


第二条规定了什么是声明。我没有把它复制到这里,因为它包含了很多例子。

声明和
定义是两个不同的概念。您可以在翻译单元中声明任意次数的名称。但定义应该只出现一次。检查和声明和定义是两个不同的概念。您可以在翻译单元中声明任意次数的名称。但定义应该只出现一次。检查和声明和定义是两个不同的概念。您可以在翻译单元中声明任意次数的名称。但定义应该只出现一次。检查和声明和定义是两个不同的概念。您可以在翻译单元中声明任意次数的名称。但定义应该只出现一次。检查并

此外,如果每个类别A在不同的cpp文件中声明为全局变量
如果使用“-warn common”

调用g++,链接器将发出警告。此外,如果每个类a在不同的cpp文件中声明为全局变量,则链接器将发出警告
如果使用“-warn common”

调用g++,链接器将发出警告。此外,如果每个类a在不同的cpp文件中声明为全局变量,则链接器将发出警告
如果使用“-warn common”

调用g++,链接器将发出警告。此外,如果每个类a在不同的cpp文件中声明为全局变量,则链接器将发出警告
如果您使用“-warn common”调用g++,链接器将发出警告。

谢谢!这正是我想知道的。谢谢!这正是我想知道的。谢谢!这正是我想知道的。谢谢!这正是我想知道的。