Я разделил свою программу на три файла. Все они находятся в одной папке и
запускаются в компиляторе g++ как g++ main.cpp pkv.cpp pkv.h
Но выдает ошибку - скорее всего, я неправильно заполнил файлы pkv.cpp pkv.h. Если написать функцию to_dec() просто в main.cpp, то всё работает
В код сильно не смотрите: у меня он другой,а это упрощенная модель.
//main.cpp
//
//
#include <iostream>
#include "pkv.h"
using namespace std;
int main(int argc, char* argv[]) {
string example = "1 5 20 15 3 -6 -19"
double res_dec = to_dec(example); //TO_DEC() - требуемая функция
cout << "RESULT in DECIMAL: " << setprecision(30) << res_dec << endl;
return 0;
}
Второй файл
// pkv.cpp
//
//
#include <iomanip>
#include <cmath>
#include <string>
double to_dec(string pkv) {
double decimal;
short sign = atoi(pkv.substr(0, 1).c_str());
for (int i = 0; i < 2; i++) {
pkv.erase(0, pkv.find(' ') + 1);
}
while (pkv.find(' ') != -1) {
decimal += pow(2, atoi(pkv.substr(0, pkv.find(' ')).c_str()));
pkv.erase(0, pkv.find(' ') + 1);
}
decimal += pow(2, atoi(pkv.c_str()));
return pow(-1, sign) * decimal;
}
И Третий
// pkv.h
//
//
#ifndef PKV_H
#define PKV_H
double to_dec(string pkv);
#endif
1) в вашем хэдэре используется некий string. Что это - компилятору никак не может быть известно.
2) ваш cpp файл с определением вашей функции никак не ссылается на ваш хэдэрфайл с объявлением функции
3) вам это уже написал компилятор. Почему вы не читаете что он вам говорит для меня загадка.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости