我在Windows窗体C++项目中实现了以下内容
template<class T> class MyQueue
{
T *m_data;
int m_numElements;
public:
MyQueue() : m_data(NULL), m_numElements(0) { }
..... code .....
};
MyQueue<char> logData; // I need to acces it from Form1.h
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}
我想在Form1.h中访问它在下
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
??? MyQueue<char> logData; // I need to acces it
}
有线索吗?
您可以声明logdata
为静态。访问原始数据成员通常不被认为是好的做法,因此您可能还希望提供一种静态方法来将字符放入队列中。下面是一个关于C++中静态成员的教程。
http://www.tutorialspoint.com/cplusplus/cpp_static_members.htm
在Form1
类之外,提供
extern MyQueue<char> logData;
在Form1_Load
函数定义内部,只需访问它:
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
logData.pop(); // Access it
}