游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2251|回复: 5

单件模式碰上LINK2001错误.

[复制链接]

10

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2007-6-22 14:21:00 | 显示全部楼层 |阅读模式
#include "DrEnBasicObject.h"

class ObjectManager
{

protected:
        ObjectManager(){}
        static std::auto_ptr<ObjectManager> my_Singleton;       
public:       
           static ObjectManager* getSingleton(void)
        {
            if (!my_Singleton.get())
          my_Singleton=std::auto_ptr<ObjectManager>(new ObjectManager());
               return my_Singleton.get();
        }

        ~ObjectManager(){}

        void addObject(BasicObject& obj)
        {
                mObjectMap.insert(make_pair(obj.getName(),obj));       
        }

        BasicObject getObject(const std::string name)
        {
                return mObjectMap.find(name)->second;
        }


};


只要我在其他类中,一引用ObjectManager::getSingleton()

连接时就出错:
无法解析的外部符号 "protected: static classstd::auto_ptr<classObjectManager> ObjectManager::my_Singleton" (?my_Singleton@ObjectManager@@1V?$auto_ptr@VObjectManager@@@std@@A)
F:\DreamEngine\DreamEngine\Release\DreamEngine.exe : fatal error LNK1120: 1 个无法解析的外部命令


求解,在线等

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-6-22 14:36:00 | 显示全部楼层

Re:单件模式碰上LINK2001错误.

my_Singleton没初始化

15

主题

202

帖子

207

积分

中级会员

Rank: 3Rank: 3

积分
207
QQ
发表于 2007-6-22 17:53:00 | 显示全部楼层

Re:单件模式碰上LINK2001错误.

我以前也常遇到此种情况,如果你确信自己已经包含了所需文件后.
那么就是编译器的原因,因为你使用同样名字的a.H(2)更换了a.H(1)后,在没有编辑的情况下,编译器依然会使用前面的a.H(1),造成了这种毛病.
只需更改编译器文件即可.

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-6-22 20:36:00 | 显示全部楼层

Re:单件模式碰上LINK2001错误.

LZ找找别人写的,看看自己少了什么

10

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2007-6-22 23:44:00 | 显示全部楼层

Re:单件模式碰上LINK2001错误.

的确是初始化问题,谢谢.

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2007-6-23 11:09:00 | 显示全部楼层

Re:单件模式碰上LINK2001错误.

在你的ObjectManager.cpp里写上
std::auto_ptr<ObjectManager> ObjectManager::my_Singleton;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 02:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表