我在编译两个类时遇到问题。
MemoryTrie.h:
#ifndef MEMORYTRIE_H
#define MEMORYTRIE_H
template <typename T>
class MemoryTrie
{
public:
...
T & operator [](const char * key);
private:
...
};
#endif /* MEMORYTRIE_H */
MemoryTrie.cpp:
#include "MemoryTrie.h"
template <typename T>
T & MemoryTrie<T>::operator [](const char * key)
{
...
}
输出文件Trie.h:
#ifndef OUTPUTFILETRIE_H
#define OUTPUTFILETRIE_H
#include "MemoryTrie.h"
template <typename T>
class OutputFileTrie
{
public:
T & operator [](const char * key);
private:
MemoryTrie<T> memoryTrie;
};
#endif /* OUTPUTFILETRIE_H */
输出文件Trie.cpp:
#include "OutputFileTrie.h"
template <typename T>
T & OutputFileTrie<T>::operator [](const char * key)
{
return memoryTrie[key];
}
主要是:
OutputFileTrie<int> trie;
链接器说:OutputFileTrie.h:9:未定义对“MemoryTrie::MemoryTrie()”的引用。我只运行了这四个命令:
g++ -Wall -pedantic -g -c MemoryTrie.cpp
g++ -Wall -pedantic -g -c OutputFileTrie.cpp
g++ -Wall -pedantic -g -c main.cpp
g++ MemoryTrie.o OutputFileTrie.o main.o -o out
我做对了吗?我错过了什么错误吗?感谢您提供任何帮助。