【发布时间】:2019-08-01 04:59:42
【问题描述】:
类声明的范围是什么?特别是:如果我在源文件中声明一个类,它是在全局范围内还是在翻译单元范围内或其他范围内?另外...如何只在翻译单元的范围内声明一个类,如静态变量?
(例如:我可以在某个源文件中声明一个类,而不必担心在我的主源文件中意外访问它吗?)
【问题讨论】:
-
请让您的问题独立,代码链接在这里不合适
-
非语言律师回答:如果在 CPP / CXX 中,它仅在该 CPP / CXX 中可见。如果在 H 中,则仅对实现的 CPP 和包含 H 的任何内容可见。这是自 Borland 的 DOS 以来我使用的每个 C++ 编译器的答案。
-
@πάνταῥεῖ 这是指向 cppreference,com 的链接,为什么这样不好?我认为它增加了上下文。如果不好我会删除它。
-
如果您担心名称冲突,您可以随时使用命名空间。
-
@user4581301 我的编译器说:
'static' is not permitted on a declaration of a type。并非所有声明都是如此;例如,using关键字仅在翻译单元(文件)的范围内可见,尽管这是一种特殊情况。 (顺便说一句,请告诉我问题中不清楚的地方)。
标签: c++ class scope declaration