我试图创建一个类BigInt,它包含一个带有D元素的std::vector。
template<int D>
class BigInt
{
public:
std::vector<short> digit(D, 0);
};
“%d”不是类型,但出现错误
问题是缺省成员初始值设定项(因为C++11)只支持等号(或带括号)初始值设定项,而不支持括号初始值设定项。
你可以
template<int D>
class BigInt
{
public:
std::vector<short> digit = std::vector<short>(D, 0);
};
也可以在构造函数中使用成员初始值设定项列表,而不是默认的成员初始值设定项。
template<int D>
class BigInt
{
public:
std::vector<short> digit;
BigInt() : digit(D, 0) {}
};
BTW:std::vector
具有与std::vector
相同的效果; 为了方便起见,您可以使用后者。