![]() |
1
2
在A.H中,实际的类A中是否有外部声明?你的问题目前是用文字表达的,但你的代码片段表明它是在文件级别。我能得到您所说的错误的唯一方法,即“为foo指定的存储类”是在a.h中用于以下内容:
也许这是你的问题?
编辑:看看你自己的答案,我想这就是你所做的。您要替换
然后您可以在其他地方访问它
|
![]() |
2
5
因为你的错误在外,我猜它不知道是什么类型。 你包括绳子了吗?
如果是这样,你需要
旁注,确保你不使用任何
编辑
你确定?我刚试过这个,它在VC++和G++中都很好地工作: A.
B.CPP
C.CPP
试试看它是否有效。 |
![]() |
3
4
在文件级别执行。外主() 弦乐器; int() } 否则,它根本就不是全球性的,而是“自动的” |
![]() |
4
2
虽然埃弗拉姆的回答是正确的,你的另一个问题是,这是否是正确的方法。答:不,在大多数情况下。 拥有一个由多个类操纵的全局值只是在乞求问题:使用 外部的 非常微妙。对于任何查看定义了变量的代码的程序员来说,没有明确的提示。他/她必须进行全源扫描才能找到它。此外,很难确定什么类更改了应用程序控制流中的值,全局变量将不同的类与不可见的带绑定在一起。好的设计使类之间的协作显式化。 更好:使您的全球 singleton . 这样,您至少可以知道值的定义位置,并且可以通过访问方法控制对值的更改。 更好的方法是:找出为什么这些类必须访问相同的值,找出哪些类完全取决于哪个方面,并相应地修改设计。经常使用 外部的 只是一个深层次设计问题的快速解决方案。 |
![]() |
5
1
TT看起来好像C++没有让你使用“外部”来做任何事情,除了对象或函数: “C++限制使用外部存储类说明符到对象或函数的名称。将外部说明符与类型声明一起使用是非法的。外部声明不能出现在类作用域中。“ 回到画板上… |
![]() |
6
1
GMAN的回答是正确的:如果不包括字符串,则试图实例化一个未定义的类型,从而导致错误。 标准中引用的内容并不恰当:Jack没有试图将类型定义为静态类型,而是试图实例化一个对象。 是的,你只能做像
…但杰克不是这么做的。 为什么我所有的代码都会在这个bbs中被破坏?上周提出了一个关于C指针的答案,当我想要单指针的时候,我得到了双星号! |
![]() |
7
1
除了将定义移出main之外,请确保在extern声明之前包含字符串头:
|
![]() |
8
0
定义foo时,在函数main中定义局部变量。当你链接时,你会得到一个丢失的符号,因为你的外部foo;从未被创建过。您需要在函数外部定义foo。 捕获信号
更好的是,你应该试试单件的。 |
![]() |
glor · 如何在报价单中的r中使用全局变量 7 年前 |
![]() |
Mabadai · 将一个int数组复制到另一个C++ 7 年前 |
![]() |
infinite · 即使没有声明也在使用全局定义 7 年前 |
![]() |
Rakesh · 全局变量值不反映在函数之间 7 年前 |
![]() |
oneMoreDeveloper · Javascript全局数组声明 7 年前 |
![]() |
Klayd Pro · 在c中使用本地指针调用并返回函数 7 年前 |
![]() |
Rob Matthews · 为模拟信用卡应用程序颁发简单的唯一ID 7 年前 |