定义在c ++标准的上下文中意味着什么?在不同的范围内接受了几个相同名称的定义:
int a=1;
int main()
{
int a=1;
}
目前尚不清楚ODR究竟意味着什么。
答案 0 :(得分:2)
由于变量的范围已发生变化,因此您在此处所指的不属于ODR。
名称(语句标签除外)具有块范围(如果是) 在函数定义中声明(包括该函数) 参数列表)或该函数中的括号内的块。它的 范围在其声明之后立即开始并且运行到结尾 阻止立即附上该声明。
您可以在此处阅读本文的其余部分:http://www.drdobbs.com/cpp/scope-regions-in-c/240002006