Я только изучаю C ++ и столкнулся с проблемой, которую не может решить консольный отладчик Sublime Text. У меня есть stringify
функция с двумя аргументами, const auto& arr
и const std::string& ch
. Я хотел бы иметь возможность инициализировать это в моем файле main.h, который я импортирую в каждый отдельный файл .cpp для своего проекта, чтобы он был доступен для глобальной области.
Я попробовал нормальный способ сделать это, просто определив его сначала в main.h, а затем заполнив остальные в моем main.cpp
main.cpp
std::string stringify(const auto& arr, const std::string& ch)
{
std::stringstream ss;
unsigned i = 0;
for (auto& element : arr) {
++i;
// add element to s
ss << element;
// if element isnt the last one.
(i != arr.size()) ? ss << ch : ss;
}
return ss.str();
}
main.h
#ifndef MAIN_H
#define MAIN_H
#include <iostream>
#include <string>
#include <sstream>
#include <array>
#include <vector>
#include <iterator>
#include <algorithm>
std::string stringify(const auto& arr, const std::string& ch);
#endif // MAIN_H
Я постоянно получаю сообщения об ошибке "неопределенная ссылка на функцию" независимо от того, что я пытаюсь , если Я не поместил полное определение функции в main.h. Что мне здесь не хватает? Я читал документы и не могу понять это.