[英]C++ subclass accessing main classes variables
我想知道子類是否可以從main.cpp文件中訪問變量。 例如:
Main.ccp
int x = 10;
int main()
{
return 0;
}
示例類的cpp
Subclass::Subclass ()
{
x = 5;
}
錯誤:
error: 'x' was not declared in this scope
我是編碼的新手,我想知道這是否可行,如果沒有,我怎么能這樣做?
這是可能的,雖然通常不是一個好主意:
Main.ccp
int x = 10;
int main()
{
return 0;
}
示例類的cpp
extern int x;
Subclass::Subclass ()
{
x = 5;
}
您可能想要做的是將x
的引用傳遞給相關的類或函數。
至少,以不同的方式構建它是一個好主意:
x.hpp:
extern int x;
x.cpp
#include "x.hpp"
int x = 10;
class.cpp:
#include "x.hpp"
Subclass::Subclass()
{
x = 5;
}
在class'cpp中添加x的extern聲明,然后編譯器將在其他cpp文件本身中找到x定義。
對代碼稍作修改:
Main.cpp的
#include "class.h"
int x = 10;
int main()
{
return 0;
}
示例類的cpp
#include "class.h"
extern int x;
Subclass::Subclass ()
{
x = 5;
}
頭文件class.h
class Subclass {
public:
Subclass ();
};
對於extern關鍵字,請參考: 如何使用extern在源文件之間共享變量?
C ++不是java。 這里沒有主類,從類中的方法訪問全局變量不是問題。 問題是訪問另一個編譯單元(另一個源文件)中定義的變量。
解決問題的方法是確保變量是在你使用它的編譯單元中定義的,就像Vaughn Cato建議的那樣(當我輸入它時)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.