[Error]invalid conversion from'int*'to'int'[-fpermissive]問題
1611 ワード
非常引用の初期値が左でなければならない最も一般的な原因は2つあります.
定数に対する参照を宣言します.たとえば、
解決策
引数が非常に多い参照タイプの関数に定数タイプを入力します.たとえば、
また
解決策はすべてパラメータの前にconstキーワードを追加します
だから、コードを書いてconstを手当たり次第に加えるのは良い習慣で、bugをコンパイルの揺りかごの中で殺します.
定数に対する参照を宣言します.たとえば、
#include
using namespace std;
int main()
{
int& i = 10;// vs :
/* Linux invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’*/
return 0;
}
解決策
#include
using namespace std;
int main()
{
int x = 10;
int& i = x;
return 0;
}
引数が非常に多い参照タイプの関数に定数タイプを入力します.たとえば、
#include
using namespace std;
void fun(int& i)
{
cout << i;
}
int main()
{
fun(1);// vs :
/* Linux invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’*/
return 0;
}
また
#include
#include
using namespace std;
void fun(string& i)
{
cout << i;
}
int main()
{
fun("str");// vs :
/* Linux invalid initialization of non-const reference of type ‘string&’ from an rvalue of type ‘string’*/
return 0;
}
解決策はすべてパラメータの前にconstキーワードを追加します
#include
#include
using namespace std;
void fun(const int& i)
{
cout << i;
}
int main()
{
fun(1);
return 0;
}
#include
#include
using namespace std;
void fun(const string& i)
{
cout << i;
}
int main()
{
fun("str");
return 0;
}
だから、コードを書いてconstを手当たり次第に加えるのは良い習慣で、bugをコンパイルの揺りかごの中で殺します.