- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要你的帮助。我不知道代码有什么问题。 “Feature”是一个带有纯虚函数的模板基类,“AvgSentenceLength”是一个子类,但问题似乎是在调用基类的“oneValueMap”函数时出现的。错误是:
1>avgSentenceLength.obj : error LNK2019: unresolved external symbol "protected: class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,double,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 ,double> > > __thiscall Feature<class Text>::oneValueMap(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,double)" (?oneValueMap@?$Feature@VText@@@@IAE?AV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@NU?$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@@N@std@@@2@@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@N@Z) в функции "public: virtual class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,double,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 ,double> > > __thiscall AvgSentenceLength::calculate(class Text)" (?calculate@AvgSentenceLength@@UAE?AV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@NU?$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@@N@std@@@2@@std@@VText@@@Z)
feature.h
#ifndef FEATURE_H
#define FEATURE_H
#include <string>
#include <map>
using namespace std;
template <class T> class Feature
{
public:
virtual map<string, double> calculate(T input) = 0;
protected:
map<string, double> oneValueMap(string name, double value);
};
#endif FEATURE_H
feature.cpp
#include "feature.h"
template <class T> map<string, double> Feature<T>::oneValueMap(string name, double value)
{
map<string, double> oneValueMap;
oneValueMap.insert(pair<string, double>(name, value));
return oneValueMap;
}
avgSentenceLength.h
#include "text.h"
#include "feature.h"
class AvgSentenceLength : public Feature<Text>
{
public:
map<string, double> calculate(Text text);
};
avgSentenceLength.cpp
#include "avgSentenceLength.h"
map<string, double> AvgSentenceLength::calculate(Text text)
{
double sum = 0.0;
string name = "AvgSentenceLength";
for (Sentence sentence: text.getText()) {
for (Token word: sentence.getText()) {
if (word.getType() == TokenType::tokenType::WORD) {
sum = sum + 1;
}
}
}
return oneValueMap(name, sum / text.getLength()); //getLength() returns int
}
最佳答案
问题是你对 Feature<Text>::opeValueMap()
的特化未定义。
那是因为特化是在avgSentenceLength.cpp
但定义在feature.cpp
.它们是独立的编译单元,因此定义不能用于特化。
一般来说,您应该将所有模板代码、事件函数定义放在 .h 文件中。
如果您知道所有需要的特化,另一种方法是将代码的显式实例化添加到 feature.cpp
并让链接器完成它的工作:
template <class T> map<string, double> Feature<T>::oneValueMap(string name, double value)
{
map<string, double> oneValueMap;
oneValueMap.insert(pair<string, double>(name, value));
return oneValueMap;
}
//explicit instantiations
template map<string, double> Feature<Text>::oneValueMap(string name, double value);
template map<string, double> Feature<Foo>::oneValueMap(string name, double value);
template map<string, double> Feature<Bar>::oneValueMap(string name, double value);
关于c++ - 错误 LNK2019 : unresolved external symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23519522/
节点版本:v6.11.0 错误信息: Unable to resolve path to module './coins.json'. (import/no-unresolved) 我还附上错误的屏幕
我的 flutter 应用程序运行良好,直到我停止成功构建的日子 android/app/src/main/kotlin/com/apps/myapp/MainActivity.kt 文件 packa
我在使用 kotlin 版本 1.3.41 的 kotlin 项目中遇到问题 Unresolved reference :我无法找出为什么会出现该问题?。我也降级了 kotlin 版本但没有效果。 当
在编译我的代码时,我收到此错误。 1>MSVCRTD.lib(crtexe.obj):错误 LNK2019:函数 ___tmainCRTStartup 中引用了未解析的外部符号 _main1>C:\U
我一直遇到这两个错误,但我似乎找不到有效的解决方案。 LNK1120: 1 unresolved externals Error 1 error LNK2019: unresolved externa
我想使用 SQLite,但出现 Unresolved -* 错误。以下是我所做工作的总结: 这是三个目录: 源文件 -->include -->src -->sqlite3 我已将以上三个目录全部添加
我在尝试构建时收到以下错误: 1> MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 r
我在构建程序时不断收到“未解析的外部符号”错误。但是,该程序编译正常。我正在使用 GLFW 和 GLAD 库。 #include #include #include void framebuff
我是谷歌测试框架的新手。这是我的第一个谷歌测试测试项目。我做了像这个网站http://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php这样
当我尝试编译我的代码时,我遇到了两个错误。我已经定义了 win32 控制台应用程序。我什至还没有开始编码。我的配置如下 - 链接器 - 子系统 - 控制台;链接器 - 高级 - 入口点 - 空白。
我尝试构建我的应用程序,但失败了,仅显示一条消息: Failed to resolve: play-services-basement 我的应用程序昨天成功构建。自昨天成功构建以来,没有代码更改。我的
任务是找到所有可表示为两个自然数的开方之和的二值数。我试试这个: func = [sqrt (x) + sqrt (y) | x a -> a mod :: Integral a => a -> a
Kotlin: Unresolved reference: totalFee 我只是在做这个小虚拟程序来练习,但它说totalFee尝试将值打印到屏幕时未解决。我已经看了一段时间了,不知道为什么。da
我正在编写一个小程序来判断字符串数组向前和向后读取是否相同。现在我的程序应该返回 false。我遇到了一些困难,因为当我扫描数组时,我希望第二个 for 循环扫描第一个 for 循环所在的相同索引,但
请问有人可以针对我的问题发布错误更正并经过测试的代码吗?程序确实 - 22.php 具有以下形式。当用户输入并单击“提交”按钮时,结果应从 23.php 中获取并显示在 22.php 上的 div 中
当我编译它时给出错误信息: usimage.cpp Generating Code... Linking... Creating library .\Output/gci2.lib and ob
我有以下项目文件: //connections.cpp #include "stdafx.h" #include "LibraryHeaders.h" #include "FileManager.h"
我正在写一个游戏,但我遇到了一个问题,导致“C++ Unresolved external 问题” ** 我的类(class):** Terrain.h Class Terrain {}; 物理对象.
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我正在使用 Visual Studio 2012 完成编程原则和实践中的练习。尝试编译下面的源代码时,我遇到了链接器错误: unresolved symbol int foo. 我不明白为什么符号没有
我是一名优秀的程序员,十分优秀!