Несколько вызовов файловых функций C ++

0

Я пишу программу, которая вычисляет норму вектора (точечный продукт с собой). У меня нет проблем с реализацией кода, что я не могу сделать, это вызвать функцию из функции, отличной от основной.

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", но компилятор говорит, что я не могу определить одну и ту же функцию более одного раза. Как я могу это решить?

  • 0
    Возможно, вы захотите поближе познакомиться с тем, как работает ООП: cplusplus.com/doc/tutorial/classes
  • 0
    Я бы не передавал int в функцию в качестве ссылки, если вы не измените ее значение.
Показать ещё 4 комментария
Теги:
arrays
file
function
include

1 ответ

0
Лучший ответ

Добавьте #include "header.h" в norm.cc

  • 0
    спасибо, это сработало. Я запутался, потому что уверен, что пытался это сделать, но компилятор вернул бы ту же ошибку ... Я, должно быть, сделал что-то не так.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню