允许嵌套结构在 C 结构之外但在 C++ 中不可见的背后有什么意义吗?我没有找到任何引用或相关性。
struct a
{
struct b{
};
};
int main(){
struct b var; // allowed in C not in C++.
}
最佳答案
它在 C 中有效,因为 C 有一个命名空间,其中定义了所有非本地类型(即未在函数中声明的类型);没有使用命名空间或嵌套的类型范围。
在 C++ 中,类型 b
嵌套为类 a
的成员,因此它的名称必须使用声明它的范围来限定。
关于c++ - C 和 C++ 中的嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284167/