+ -
当前位置:首页 → 问答吧 → MDI下怎样定义全局对象?

MDI下怎样定义全局对象?

时间:2011-12-18

来源:互联网

在MDI下,我有一个类MyClass,想定义它的一个全局对象指针MyClass *pMyClass,我试过的方法如下:
1,在系统生成的CMyApp.app中声明MyClass *pMyClass,在CMyApp.H中extern MyClass *pMyClass。编绎没有问题,但运行跟踪发现该对象没有去构造。
2,与第一点相同,只是把它换到了MFC生成的stdafx中。也跟上面的情况一样,没有去构造
3,用上面的方法定义为静态,发生LINK错误

以前我在基于对话框的程序上面是这样做的,没有问题,现在想用MDI再做,这种定义方法就不行了。
想请教大家,该怎样定义这样一个全局的对象呢?

作者: lrypower   发布时间: 2011-12-18

在一个cpp 文件中 定义: 
MyClass MyClassobject1;

1、在其它需要用到该全局对象的cpp文件中:

extern MyClass MyClassobject1;

就可以了。

2、或者在一个顶级的h文件中:
extern MyClass MyClassobject1;

再把顶级的h文件包含进其它cpp 文件 或h文件

作者: hztj2005   发布时间: 2011-12-18

引用 1 楼 hztj2005 的回复:

在一个cpp 文件中 定义:
MyClass MyClassobject1;

1、在其它需要用到该全局对象的cpp文件中:

extern MyClass MyClassobject1;

就可以了。

2、或者在一个顶级的h文件中:
extern MyClass MyClassobject1;

再把顶级的h文件包含进其它cpp 文件 或h文件


这跟我用的方法不是一样的吗?没有不同之处啊?

作者: lrypower   发布时间: 2011-12-18

你MyClass *pMyClass定义的只是指针,难道不知道?

作者: hztj2005   发布时间: 2011-12-18