2014-06-12 25 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