簡體   English   中英

錯誤:從整數類型到指針類型的轉換需要reinterpret_cast,C樣式強制轉換或函數樣式強制轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM