Я пишу программу, которая вычисляет норму вектора (точечный продукт с собой). У меня нет проблем с реализацией кода, что я не могу сделать, это вызвать функцию из функции, отличной от основной.
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;
}
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);
}
}
в файле main.cc я добавил строку
#include "header.h"
и все функции, которые я вызываю из основной работы, как шарм, но вызов функции productScalar() из norm() не работает. Я добавил ту же строку #include "header.h", но компилятор говорит, что я не могу определить одну и ту же функцию более одного раза. Как я могу это решить?
Добавьте #include "header.h"
в norm.cc
int
в функцию в качестве ссылки, если вы не измените ее значение.