作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
static int a;
};
int A::a=20;
class b
{
public:
b()
{
cout<<A::a<<endl;
}
};
int main()
{
b *b1 = new b();
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
class c
{
public:
int get()
{
cout<<A::a<<endl;
}
};
int main()
{
c c1;
c1.get();
return 0;
}
这是他们在一个程序中声明和获取输出的方式,但是当我尝试它时,我遇到了错误,因为类不是命名空间或者程序 ID 不包含在 id1 文件中...如何在不使用命名空间和包含头文件的情况下将存储在一个文件中的变量获取到另一个文件中,有什么选择吗?
最佳答案
如图所示的两个独立程序(它们是独立的,因为它们都定义了 main()
)不能以任何简单的方式共享变量。
如果要将两个单独的文件集成到一个程序中,那么其中一个 main()
程序被替换,那么您将求助于声明变量 的标准技术>A::a
在 header 中并在两个模块中使用该 header 。 header 还将定义类 A
。这是唯一明智的方法。
你可以写两次类的定义,每个文件一次,然后在一个文件中将变量声明为 extern
并在另一个文件中定义它,但即使在如果代码变得更复杂并且有更多共享变量,这个简单的案例会迅速退化为无法维护的灾难。
当然,您可能想考虑根本不使用全局变量,而是提供访问函数。但是,您最终还是会得到一个 header ,声明类 A
提供的服务以及实现这些服务的代码,以及使用这些服务的代码。
关于c++ - 在 C++ 中访问程序外的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5775785/
我是一名优秀的程序员,十分优秀!