![](/img/trans.png)
[英]Conversion requires reinterpret_cast, C-style cast or function-style cast
[英]Error: Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
我在使用變量RockElem時遇到強制轉換錯誤。 該變量與其他整數變量一起在類中定義。 此變量定義為const。
if(resistivitySolve)
fileName << "_resist";
else if(dynamic_cast< const Water* >(fluid) != 0)
fileName << "_water";
else
fileName << "_oil";
fileName << "_sw_" << waterSat*100.0;
sort(m_throatConductances.begin(), m_throatConductances.end(), throatIndexCompare());
pair<const RockElem*, double> dummy(0, 0.0);
int idx(-99);
for(size_t i = 0; i < m_throatConductances.size(); ++i)
{
int tmp(m_throatConductances[i].first->orenIndex());
if(tmp == idx) m_throatConductances[i] = dummy;
idx = tmp;
}
我得到的錯誤是錯誤C2440:'正在初始化':無法從'int'轉換為'const RockElem *'1>從整數類型到指針類型的轉換需要reinterpret_cast,C樣式強制轉換或函數樣式強制轉換
錯誤在於類的這一部分-在術語RockElem *之前使用const
[
_Ty1=const RockElem *,
_Ty2=double,
_Ty=int,
_Other1=int,
_Other2=double
]
請參見對正在編譯的函數模板實例化'std :: _ Pair_base <_Ty1,_Ty2> :: _ Pair_base <_Ty,double>(_ Other1 && ,, _ Other2 &&)'的引用
使用此代碼行是
pair<RockElem*, double> dummy(0, 0.0);
這設置不正確嗎?
錯誤訊息
錯誤C2440:“正在初始化”:無法從“ int”轉換為“ const RockElem *” 1>
很清楚。 您正在嘗試將整數類型的對象轉換為指針RockElem *。 你確定你要這么做嗎? 如果是這樣,請按照您在錯誤消息中給出的編譯器的建議進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.