【发布时间】:2014-04-06 15:16:28
【问题描述】:
我有一个构造函数来表示大数字并将它们存储到向量中: 我的类由一个向量、一个布尔值和一个整数组成,应该代表大数字。
CBigInt(const char* str2)
{
string str=string(str2);
num.resize(200000);
if (str[0]=='-')
{
signe=true;
pos=str.length()-1;
for (int i=pos;i>0;i--)
{
num[pos-i]=str[i]-48;
}
}
else
{
signe=false;
pos=str.length();
for (int i=pos;i>=0;i--)
{
num[pos-i-1]=str[i]-48;
}
}
}
我得到一个错误:http://pastebin.com/cy82XaLF
【问题讨论】:
-
字符串是
std::string? -
是的,字符串是 std::string。
-
好吧,你可以做
CbigInt foo = std::string("11113"),但我仍然想知道为什么它不能隐式地从const char[]构造字符串 -
顺便说一句,如果你有 c++11 支持,你可能想定义一个
user-defined literal -
提示:避免使用幻数,而是使用字符文字。这远没有那么令人困惑。
'0'.
标签: c++ constructor overloading operator-keyword