C++ 我可以在另一个 class 中使用标识符吗?

C++ Can I use Identifiers in another class?

我是 C++ 的新手,所以我不知道该怎么做。基本上我有一些在 PvUiSampleDlg.h 中声明的 CEdit 类型的标识符。它们用于 PvUiSampleDlg.cpp.

CEdit mIPEdit;
CEdit mMACEdit;
CEdit mManufacturerEdit;
CEdit mModelEdit;
CEdit mNameEdit;

我所做的是创建另一个名为 SettingsDlg.cpp 的 class,我也想在此 class 中使用相同的标识符。我该怎么做呢?我假设您必须在 SettingsDlg.h 中获取标识符,但我不确定该怎么做。我在 SettingsDlg.cpp 和 SettingsDlg.h 中都有#include PvUiSample.h。任何帮助将不胜感激。

您似乎在寻找 extern 关键字。

当你声明你的变量时,将 extern 放在它们的前面。这让 compiler/linker 知道这些变量将在这个文件之外使用。

//PvUiSampleDlg.h
extern CEdit mIPEdit;
extern CEdit mMACEdit;
extern CEdit mManufacturerEdit;
extern CEdit mModelEdit;
extern CEdit mNameEdit;

确保只在一处初始化变量。

//PvUiSampleDlg.cpp
#include "PvUiSampleDlg.h"

CEdit mIPEdit(/* your constructor args*/); // You can initialize like this
...
void someFunc(){
    return mIpEdit;  // do something with your variable as you would normally
}

您可以如上所示初始化您的变量。确保包含包含外部变量的 header,否则初始化会将其视为普通静态变量。

然后在任何其他文件中,包括您的 header,您可以按预期使用这些变量。