我擁有類格拉夫構造:[n]和INT **
template <typename T>
Graph<T>::Graph(T ** input)
{
graphData = input;
}
當我試圖使用箱二維陣列,而不是這個類的一個新實例INT **
int intArray[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
Graph<int>* IntGraph = new Graph<int>(intArray);
我有一個錯誤cannot convert parameter 1 from 'int [3][3]' to 'int **
我是新來的C++,我認爲這些類型兼容。你能否描述我的區別?
編輯: 因爲這個問題被標記爲重複的,我也想問,什麼是這些類型中的一種轉換成另一種最好的方式,或者改用什麼沒有任何性能損失
見http://stackoverflow.com/questions/14183546/why-does-int-decay-into-int-but-not-int – Michael
謝謝你,我現在理解上的差異。但是,我沒有找到方法,如何將一個轉換爲另一個。 –
你想在這裏做什麼看起來危險和複雜。我可以看到有人將一個指向本地對象的指針傳入構造函數中的未定義行爲。幫你一個忙,並在Graph中使用'std :: vector'。 –