gpt4 book ai didi

c++ - 将类更改为静态类有些奇怪

转载 作者:太空狗 更新时间:2023-10-29 23:53:46 26 4
gpt4 key购买 nike

所以我决定将我的类(资源管理器类)更改为 C++ 中的静态类我收到一条我无法理解的错误消息...也许你们可以帮助我? :)

这是头文件:

#ifndef RESOURCEMANAGER_H
#define RESOURCEMANAGER_H

#include <iostream>
#include <map>
#include <string>
#include "Image.h"

namespace sz {
typedef std::map<std::string, sz::Image> TStrImageMap;
typedef std::pair<std::string, sz::Image> TStrImagePair;

class ResourceManager {
private:
static TStrImageMap images; // Name, Image(sz::Image)
public:

static void AddImage(std::string name, std::string path);
//void AddSound();

static sz::Image &GetImage(std::string name);
//GetSound();
};
}
#endif

这是我得到的错误:

1>------ Build started: Project: Basic SFML, Configuration: Debug Win32 ------
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>ResourceManager.obj : error LNK2001: unresolved external symbol "private: static class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class sz::Image,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class sz::Image> > > sz::ResourceManager::images" (?images@ResourceManager@sz@@0V?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VImage@sz@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VImage@sz@@@std@@@2@@std@@A)
1>C:\Users\Gannash\Desktop\Game Project\Debug\Basic SFML.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

请保持温柔,我是 stackoverflow 的新手 :D

最佳答案

您已经声明了静态成员,但没有定义它;您需要在一个(而且只有一个)源文件中定义:

#include "ResourceManager.h"

sz::TStrImageMap sz::ResourceManager::images;

如果您不确定声明和定义之间的区别,here是一个彻底的讨论。

关于c++ - 将类更改为静态类有些奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com