Я пишу программу, которая вычисляет норму вектора (точечный продукт с собой). У меня нет проблем с реализацией кода, что я не могу сделать, это вызвать функцию из функции, отличной от основной.Множественные вызовы функций файлов 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;
}
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", но компилятор говорит, что я не могу определить одну и ту же функцию более одного раза. Как я могу это решить?
Вы могли бы хотеть иметь более близкий взгляд на то, как работает ООП: http://www.cplusplus.com/doc/tutorial/classes/ – NSimon
я бы не пройти 'int 'к функции в качестве ссылки, если вы не измените ее значение. – tgmath
Это должно сработать. Скажите, что вы подразумеваете под «не работает» и публикуете сообщение о точной ошибке от компилятора. (BTW: Вы забываете что-то вернуть из 'scalarProduct' и почему параметр размера является ссылкой?) – molbdnilo