Решил попробовать поэкспериментировать создать проект, записав функцию в отдельный файл, однако произошла для меня неведомая ошибка. Тестировал я это на нескольких компиляторах и ошибка та же, следовательно проблема в моем коде.
Source.cpp
#include <iostream>
#include "Header.h"
#include "func.cpp"
int main() {
int num, expotent;
std::cout << "Enter the number: ";
std::cin >> num;
std::cout << "Enter the expotent";
std::cin >> expotent;
std::cout << exponentiation(num, expotent);
}
Header.h
#ifndef HEADER_H
#define HEADER_H
long long int exponentiation(int x, int y);
#endif
func.cpp
#ifndef FUNC_CPP
#define FUNC_CPP
#include "Header.h"
long long int exponentiation(int x, int y) {
if (y == 0) {
return 1;
}
for (int c = 1; c == y; c++) {
x *= x;
}
return x;
}
#endif // !FUNC_CPP
Как я понял ошибка происходит из-за того, что функция exponentiation определяется несколько раз, хотя почему это происходит, понять не могу.
Подробности ошибки:
LNK1169 обнаружен многократно определенный символ - один или более deleeeeteeee C:\Users\Ivan\source\repos\deleeeeteeee\Debug C:\Users\Ivan\source\repos\deleeeeteeee\Debug\deleeeeteeee.exe 1
LNK2005 "__int64 __cdecl exponentiation(int,int)" (?exponentiation@@YA_JHH@Z) уже определен в func.obj deleeeeteeee C:\Users\Ivan\source\repos\deleeeeteeee\deleeeeteeee
Беда в том, что вы зачем-то включаете func.cpp
в source.cpp
:
#include "func.cpp"
В результате у вас есть exponentiation
и в func.obj
, и в source.obj
, и компоновщик не знает, какой предпочесть.
Уберите указанную строку из source.cpp
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Возможно ли на ncurses установить размер терминала, в котором выполняется программа?
Где можно найти полный код встроенной функции sort в js? Вот например код map из книги "Выразительный JavaScript":