Я пытаюсь преобразовать код в C на язык C ++, и я получаю сообщение об ошибке, но я понятия не имею,
в чем источник проблемы
Вот исходный код: http://pastebin.com/PnKvgNsR
Сообщение об ошибке:
call of overloaded ‘dateTimeToMinutes(char*&)’ is ambiguous
Компиляция с g ++ 4.7.1 (включая стандарт c ++ 11).
В вашем файле cpp укажите пространство имен RabQavSystem в ваших определениях функций dateTimeXXX.
int RabQavSystem::dateTimeDifference(DateTime datetime1, DateTime datetime2)
{
...
}
int RabQavSystem::dateTimeToMinutes(DateTime datetime)
{
...
}
В своем заголовке вы объявляете две функции в RabQavSystem
Пространство имен:
namespace RabQavSystem {
int dateTimeToMinutes(DateTime datetime);
int dateTimeDifference(DateTime datetime1, DateTime datetime2);
}
В вашем исходном файле вы объявляете и определяете новые функции в глобальном пространстве имен; это не определения функций, объявленных в заголовке, а разных функций в другом пространстве имен:
int dateTimeDifference(DateTime datetime1, DateTime datetime2) {
// ....
}
int dateTimeToMinutes(DateTime datetime) {
// ....
}
затем using namespace RabQavSystem;
тянет имена других функций в глобальное пространство имен, вызывая неоднозначность.
Чтобы исправить это, вы хотите определить функции в вашем пространстве имен, а не в глобальном пространстве имен:
int RabQavSystem::dateTimeDifference(DateTime datetime1, DateTime datetime2) {
^^^^^^^^^^^^^^
}
int RabQavSystem::dateTimeToMinutes(DateTime datetime) {
^^^^^^^^^^^^^^
}