2014-06-12 112 views
-1

我對標題聲明有誤解。請幫瑪:標題聲明錯誤C++

我的CPP文件:distanceMatrixFunc.cpp

float DistanceMatrix::distanceMatrixFunc(int particleNumber,float xPos [], float yPos  
[], float zPos []) 
{ 
    int j, k = 0; 
    distanceMatrix_x[] = new float*[particleNumber]; 
    distanceMatrix_y = new float*[particleNumber]; 
    distanceMatrix_z = new float*[particleNumber]; 
    distanceMatrix = new float*[particleNumber]; 

    for (int i = 0; i < particleNumber; i++){ 
    distanceMatrix_x[i] = new float[particleNumber]; 
    distanceMatrix_y[i] = new float[particleNumber]; 
    distanceMatrix_z[i] = new float[particleNumber]; 
    distanceMatrix[i] = new float[particleNumber]; 
} 

distanceMatrixFunc.h功能:

class DistanceMatrix { 
    float distanceMatrix_x; 
    float distanceMatrix_y; 
    float distanceMatrix_z; 
    float distanceMatrix; 
    int particleNumber; 
    float xPos ; 
    float yPos ; 
    float zPos; 
    float distanceMatrixFunc(int particleNumber, float xPos , float yPos , floatzPos); 
};   

的問題是在我的cpp文件: 浮動DistanceMatrix :: distanceMatrixFunc(INT particleNumber,float xPos [],float yPos [],float zPos []) 錯誤聲明與float distanceMatrix不兼容

+0

同時,我不知道是出於什麼目的,我們聲明int *函數(){}使用指針,而不是正常的聲明int function(){} – Jack

+2

您是否已閱讀錯誤消息? –

回答

2

您的頭文件中的聲明需要三個float變量,您的.cpp文件中的定義需要三個float數組。要麼改變聲明中的頭文件預計三個數組:

float distanceMatrixFunc(int particleNumber, float xPos[] , float yPos[] , floatzPos[]); 

或在您的.cpp文件的定義,將有三個float S:

float distanceMatrixFunc(int particleNumber, float xPos , float yPos , float zPos) { 
    ... 
} 
+0

另一個問題是爲什麼我們使用指針指向方法聲明而不是傳統指針。例如** main(){}。 – Jack

+0

它是函數的返回類型。你不想在'main'中這樣做,而在其他函數中,即'int * function()',這意味着函數返回一個指向'int'的指針(即'int *')。 – wolfPack88

+0

謝謝wolfPack88! – Jack