c++ - C 和 C++ 中的嵌套结构

标签 c++ c

允许嵌套结构在 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/

相关文章:

c++ - 如何将静态方法添加到 QInputDialog 以返回自定义数据?

c - 局部变量和全局变量

c - 在 eclipse (Fedora) 上的 c 程序中未定义对 pthread_create 的引用

C: 正在释放的 malloc 错误指针未分配

c++ - 如何将 std::vector<std::string> 转换为 boost::spirit 中结构的成员?

c++ - 从文件中加载和保存大量结构化数据 C++

c++ - 将 SDL2 与 wxWidgets 3.0 一起使用

c++ - 在 xubuntu 12.04 上使用专有驱动程序时,SDL2 硬件加速渲染器会导致 linux 崩溃?

c - 添加的值不会正确保存到 malloc 数组。我忽略了内存泄漏吗?

c++ - 将 SWI-Prolog 连接到 C++ 的问题