2014-11-12 3 views
0

나는 벡터의 표준을 계산하는 프로그램을 작성하고있다. 나는 코드를 구현하는데 아무런 문제가 없다. 내가 할 수없는 것은 주된 함수가 아닌 다른 함수로부터 함수를 호출하는 것이다.여러 파일 함수 호출 C++

header.h가

#ifndef HEADER 
#define HEADER 

void readArray(double [], int &); 
void printArray(double [], int &); 
void norm(double [], int &); 
double scalarProduct(double [], int &); 

#endif 

norm.cc

// norm.cc 
#include <iostream> 
#include <cmath> 
using namespace std; 

void norm(double array[], int & size) 
{ 
    double norm; 
    norm = sqrt(scalarProduct(array, size)); 

    cout << "Norm = " << norm << endl; 
} 

내가 선을 추가 main.cc 파일에 scalarProduct.cc

// scalarProduct.cc 
#include <cmath> 
double scalarProduct(double array[], int & size) 
{ 
    double ps = 0.0; 
    for(int i = 0; i < size; i++) 
    { 
     ps += pow(array[i], 2); 
    } 
} 

#include "header.h" 

및 기본 작업에서 호출하는 모든 기능은 매력처럼 보이지만 norm()에서 productScalar()를 호출하면 작동하지 않습니다. 동일한 #include "header.h"라인을 추가했지만 컴파일러는 동일한 함수를 두 번 이상 정의 할 수 없다고 말합니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

당신은 싶어 OOP가 어떻게 작동하는지에 대해 자세히 살펴있을 수 있습니다 추가 http://www.cplusplus.com/doc/tutorial/classes/ – NSimon

+0

나는를 통과하지 것이다 값을 변경하지 않으면 'int'를 참조로 함수에 추가하십시오. – tgmath

+0

그게 효과가있다. "작동하지 않는다"는 말을하고 컴파일러에서 정확한 * 오류 메시지를 게시하십시오. (BTW :'scalarProduct'에서 무엇을 반환하는 것을 잊고 있는데 왜 크기 매개 변수를 참조할까요?) – molbdnilo

답변

0

norm.cc에 #include "header.h"

+0

덕분에, 그것은 효과가있었습니다. 혼란 스럽네요. 그걸 시도 했으니까요.하지만 컴파일러는 같은 오류를 반환 할 것입니다 ... 나는 틀린 일을해야만합니다. –