对本地实例化对象的访问

Access to a locally instantiated object

本文关键字:访问 对象 实例化      更新时间:2023-10-16

我知道这是一个新手问题,但是我遇到了一点麻烦。

让我们假设我正在尝试向我创建的文本字段写入一些内容。

我将在入口点内实例化textField类。main.cpp:

#include "textField.h"  
void main()
{
  textField field;
  field.show();        
}

现在,在另一个源文件中,我将尝试向textField写入一些内容。
hello.cpp

#include "textField.h"
void sayHello()
{
   field.write("Hello!");
}

让我们假设sayHello()在将来某个时候在main()函数之外的其他地方被调用。我们还假设许多其他文件需要访问TextField的实例。

当然,这段代码不会工作,所以我的问题是:哪种方法是推荐能够从另一个文件访问TextField类的实例?

经过一番研究,我发现了一些解决方案,如使textField成为单例,或一些巧妙的使用指针,甚至使实例成为全局变量,但我不确定这些是最佳的方法。我试图保持全局变量到最小。

我能够自己找到解决方案,但是我想要一些关于这种示例的最佳编码实践的输入

如果这个textField是一个真正的UI小部件,我猜你可以通过window HWND或其他你正在使用的UI库来获得它。

如果这个textField只是一个普通类的示例名称,我认为你可以创建一个名为"GlobleVariable"的类或任何名称,并将你想要全局使用的实例移动到这个类中。这个类可以是单例的