C++ 错误:从常量字符*到int的转换无效
从const char*到int的转换无效。我知道错误是什么,但不知道如何修复它。谢谢你的帮助 错误在以下行中: BigNum temp=str.c_str()C++ 错误:从常量字符*到int的转换无效,c++,C++,从const char*到int的转换无效。我知道错误是什么,但不知道如何修复它。谢谢你的帮助 错误在以下行中: BigNum temp=str.c_str() 。。。。您正在将字符串指定为BigNum。你为什么这么做 C++不允许您在整数和指针之间进行隐式转换,如果您正试图这样做的话 C++也不是那种只需将字符串赋给int并将其转换的语言,如果您正试图这样做的话。您需要执行某种形式的词法转换。错误在于编译器找不到: 1.包含char*参数或 2.采用char*的BigNum构造函数 我建议为s
。。。。您正在将字符串指定为BigNum。你为什么这么做 C++不允许您在整数和指针之间进行隐式转换,如果您正试图这样做的话
C++也不是那种只需将字符串赋给int并将其转换的语言,如果您正试图这样做的话。您需要执行某种形式的
词法转换。错误在于编译器找不到:
1.包含char*
参数或
2.采用char*
的BigNum
构造函数
我建议为std::string
添加赋值运算符。您可能还需要一个构造函数和复制构造函数,该构造函数接受std::string
参数
在web上搜索“C++规则3”。似乎您只需要将类型为std::string
的对象str转换为类型为int的对象并调用相应的构造函数
试试下面的方法
BigNum temp( stoi( str ) );
或者如果构造函数不是显式的,那么
BigNum temp = stoi( str );
而不是
BigNum temp = str.c_str();
既然你没有说什么是BigNum
,那就很难帮上忙了。你到底为什么认为你应该能够分配一个指向该类型对象的指针?@user3403896 BigNum的构造函数是如何定义的。如果BigNum
类有一个重载的赋值运算符,它接受字符串指针,或者一个接受字符串指针的构造函数一个字符串指针,然后是的,您可以将一个字符串指定为aBigNum
Sure,但通常BigNum类似于。本质上是python int的“无限精度”的复制品。当然,但通常BigNum类似于。本质上是C或C++库。
BigNum temp = str.c_str();