2015-10-19 579 views
-1

我遇到一個錯誤,我找不出原因。錯誤:從'int'到'const char *'的無效轉換[-fpermissive]

我有一個子類:(頭)

class motionSensor: public sensorLeaf 
{ 
public: 
    motionSensor(const int& sensorID, const int& sensorType, bool sensorActivate); 

從超類繼承 「sensorLeaf」

的子類有2個私有變量

const float minDistance; const float maxDistance;

在我的類文件;這裏是我的構造函數:

motionSensor::motionSensor(const int &sensorID, const int &sensorType, bool sensorActivate) 
:sensorLeaf(sensorID, sensorType, sensorActivate), minDistance{1.0f}, maxDistance{5.0f} 

但是,一旦我編譯它,我收到以下錯誤:

/home/jb/EmergencySensor/motionsensor.cpp:8: error: invalid conversion from 'int' to 'const char*' [-fpermissive] 
    :sensorLeaf(sensorID, sensorType, sensorActivate), minDistance{1.0f}, maxDistance{5.0f} 
                         ^

Sensorleaf構造是:

sensorLeaf::sensorLeaf(const int sensorID, const std::string sensorType, bool sensorActivate) 
{ 
    _sensorID = sensorID; 
    _sensorType = sensorType; 
    _sensorActivate = sensorActivate 
} 

隨着私有變量:

private: 
    int _sensorID; 
    std::string _sensorType; 
    bool _sensorActivate; 

}; 

經過一番研究我發現當你將一個字符串定義爲「'而不是」「時會發生錯誤,但我沒有在任何地方使用過。

+3

向我們展示'sensorLeaf'構造函數。 –

+1

請閱讀發佈指南,特別是關於最小但完整的示例。 –

+0

更新後,我很抱歉:) – Jbv1

回答

1

您正試圖強制const int &sensorTypemotionSensor構造函數到const std::string sensorTypesensorLeaf構造函數。

motionSensor::motionSensor(const int &sensorID, const int &sensorType, bool sensorActivate) 
------------------------------------------------------------^ 
:sensorLeaf(sensorID, sensorType, sensorActivate), minDistance{1.0f}, maxDistance{5.0f} 
-----------------------^ 

sensorLeaf::sensorLeaf(const int sensorID, const std::string sensorType, bool sensorActivate) 
-------------------------------------------------------------^ 
+0

謝謝!我發現後我自己:D – Jbv1

+0

@ Jbv1我不知道你做了什麼改變。將示例隔離爲SSCCE。 –

+0

沒關係,找到它;) – Jbv1

相關問題