我有一个处理大数字的作业,但我无法编译最简单的代码版本。有三个文件(.hh,.cpp和一个测试.cpp)。 代码在这里: bignum.hh:
#pragma once
#include <cstdint> // uint8_t
#include <iostream> // ostream
namespace bistro
{
template <typename T = uint8_t>
class BigNum
{
public:
BigNum(std::size_t base);
private:
};
}
bignum.cpp:
#include "bignum.hh"
namespace bistro
{
using std::size_t;
// debug
using std::cout;
using std::endl;
template<typename T>
BigNum<T>::BigNum(size_t base) {
cout << base << endl;
}
}
test0.cpp:
#include "../src/bignum.hh"
using bistro::BigNum;
int main() {
BigNum<uint8_t> *b = new BigNum<>(10);
return 0;
}
我用这个命令编译它们:
g++ -std=c++14 src/bignum.cpp tests/test0.cpp -o tests/test0
问题在于: enter image description here 那么,问题在哪里?