我正在阅读有关One Definition Rule的内容。它说:
如果一个 .cpp 文件定义了struct S { int x; }; 另一个 .cpp 文件定义了struct S { int y; }; ,将它们链接在一起的程序的行为是未定义的。这通常通过未命名的命名空间来解决。
我不明白为什么以及它是如何未定义的?有人能解释一下这背后的真正原因吗?未命名的命名空间如何解决?
我正在阅读有关One Definition Rule的内容。它说:
如果一个 .cpp 文件定义了struct S { int x; }; 另一个 .cpp 文件定义了struct S { int y; }; ,将它们链接在一起的程序的行为是未定义的。这通常通过未命名的命名空间来解决。
我不明白为什么以及它是如何未定义的?有人能解释一下这背后的真正原因吗?未命名的命名空间如何解决?