我拥有类格拉夫构造:[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'。 –