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

时间:2015-07-23 04:20:14

标签: c++ visual-studio-2010 class mfc identifier

我是C ++的新手,所以我不确定如何做到这一点。基本上我有一些在PvUiSampleDlg.h中声明的CEdit类型的标识符。它们用于PvUiSampleDlg.cpp。

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

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

1 个答案:

答案 0 :(得分:0)

您好像正在寻找extern关键字。

当您声明变量时,将extern置于其前面。这使编译器/链接器知道这些变量将在此文件之外使用。

//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
}

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

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