1
4
您需要区分两类实体:在整个程序中可能只有一个定义的实体和在每个翻译单元中可能只有一个定义的实体,尽管这些定义必须相同(即相同的标记序列加上一些其他要求)。在任何情况下,单个翻译单元只能包含一个实体的定义。 看见 https://en.cppreference.com/w/cpp/language/definition 详细信息。
大多数实体属于第一类,但类、各种模板和
不清楚您对编译器调用的意图是什么
在编译单元中
如果
请注意,从技术上讲,标准库不受语言规则的约束。它可能根本不是用C++编写的。在这种情况下,只要用户程序符合语言规则,它就必须为用户正确工作,无论它是如何包含的。 还要注意,显式实例化定义
你使用它的方式毫无意义。仅当类模板的成员与上面提到的典型用法相反,不是在头中定义的,而是在单个翻译单元中定义的(但对于标准库来说,情况并非如此)或是为了加快编译时间时,才需要这样做,在这种情况下,其他翻译单元中应该有一个显式实例化声明,以防止隐式实例化。 |
lplplplp · 为什么不能访问函数外的结构指针 2 年前 |
Schadre · C-plus编码错误 2 年前 |
ME Desings · 尝试从阵列复制时出现分段错误(核心转储)错误 2 年前 |
emanuel · python列表中的count函数 2 年前 |
AISAN · 找不到令人兴奋的符号?[重复] 2 年前 |
coder123 · 无法将符号解析为JSONObject 6 年前 |