C++代码:
distance.h:
class Distance
{
public:
Distance(int m,double array1[],double array2[]);
void distance(double a[],double b[]);
double get(){
return result;
}
~Distance(){}
private:
int n;
double *a;
double *b;
double square;
double result;//顺序颠倒会影响程序结果!
};
distance.cpp:
#include "distance.h"#include <iostream>#include <cmath>
Distance::Distance(intm,doublearray1[],doublearray2[])
{
n=m;
a=array1;
b=array2;
distance(a,b);
}
void Distance::distance(double a[],double b[])
{
square=0;
for(int i=0;i<n;i++){
square+=(a[i]-b[i])*(a[i]-b[i]);
}
result=sqrt(square);
}
main.cpp:
int main(){int n;cout<<"Please input the dimensions n:";cin>>n;double a[n];double b[n];cout<<"Input the "<<n<<" number for the dimendions of a1:";for(int i=0;i<n;i++)cin>>a[i];cout<<"Input the "<<n<<" number for the dimendions of b1:";for(int i=0;i<n;i++)cin>>b[i];Distance distance(n,a,b);cout<<"The distance is:"<<distance.get()<<endl;return 0;}
总结:变量声明的顺序若出现颠倒则会影响结果。