我已經做了一個簡單的類來嘗試C++中的轉換構造函數。爲什麼不調用轉換構造函數?
它很明顯,但是當做某個操作時,似乎編譯器不會調用它。我會知道爲什麼,或者我錯了。
#include <iostream>
using std::cout; using std::endl;
class CostruttoreConversione
{
public:
CostruttoreConversione(int val = 0)
{
cout << "Costruttore chiamato" << endl;
valore = val;
}
inline int getValore(){
return valore;
}
CostruttoreConversione provaConversioneImplicita()
{
return -10; //here the type *should* be converted; doesn't happen.
}
private:
int valore;
};
int main(void){
CostruttoreConversione obj(10);
cout << "obj = " << obj.getValore() << endl;
obj = 20; //WORKS
cout << obj.getValore() << endl;
// cout << obj.provaConversioneImplicita() << endl; doesn't work.
return 0;
}
什麼是錯誤信息? –
當您在類中定義函數時,您不需要聲明函數'inline';它具有相同的效果。 –