С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 19.12.2013
Сообщений: 18
1

Возникает ошибка в проекте. Дублирование имен фукнций

29.04.2015, 22:30. Показов 1200. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, друзья. Имею проект, довольно крупный. К сожалению, столкнулся с проблемой: при компиляции выдаёт следующие ошибки:
C++
1
2
3
Ошибка 2 error LNK2005: "void __cdecl program6_3(void)" (?program6_3@@YAXXZ) уже определен в Pr6_3.obj   C:\Users\Илья\Desktop\MyLabs(1sem)\ConsoleApplication2\Pr8_1.obj    My Labs(1sem)
 
Ошибка    3   error LNK1169: обнаружен многократно определенный символ - один или более C:\Users\Илья\Desktop\MyLabs(1sem)\Release\My Labs(1sem).exe    My Labs(1sem)
Сам проект прикреплён ко вложениям и разделён на три части, если не можете понять в чём суть.

Код непосредственно самой программы, в которой выдаёт ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "MyPrograms.h"
#include <iostream>
#include <iomanip>
 
using namespace std;
 
void program6_3() {
    setlocale(0, "");
 
    float a_value = 1, b_value = 2; int n_count = 18;
    float step = (b_value - a_value) / (n_count - 1);
    float *x_value = new float[n_count];
    float *f1_value = new float[n_count];
    float *f2_value = new float[n_count];
    cout << "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _" << endl;
    cout << "|                 |                 |" << endl;
    cout << "|        F1       |        F2       |" << endl;
    cout << endl;
    cout.flags(ios::fixed);
    float xs_value = a_value;
    x_value[0] = xs_value;
    for (int i = 0; i < n_count; i++) {
        x_value[i] = xs_value;
        f1_value[i] = 1 + pow(2, x_value[i] + 5);
 
        cout << setprecision(2) << "F1(" << x_value[i] << ") = " << f1_value[i];
        f2_value[i] = pow((x_value[i] - 1), 3);
        cout << setprecision(2) << "     F2(" << x_value[i] << ") = " << f2_value[i] << endl;
 
        xs_value += step;
    }
    cout << "|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|" << endl << endl;
    system("pause");
}
Надеюсь на вашу помощь.
Вложения
Тип файла: rar MyLabs(1sem).part01.rar (9.00 Мб, 6 просмотров)
Тип файла: rar MyLabs(1sem).part02.rar (9.00 Мб, 5 просмотров)
Тип файла: rar MyLabs(1sem).part03.rar (3.94 Мб, 5 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2015, 22:30
Ответы с готовыми решениями:

При запуске проекта через дебаггер в проекте возникает ошибка
когда запускаю проект через дебаггер и в проекте возникает ошибка, то показывается ошибочная строка...

В проекте выполняется асинхронная работа через Ajax перелистывание страниц возникает ошибка
В проекте перелистывание страниц выполнено асинхронным методом. При переходе на другую страницу в...

Не возникает ли коллизия имен, если использовать два пространства имен, и в каждом из них будут одноименные?
Вот например namespace nms1 { int gh; } namespace nms2 { int gh;

При выгрузке библиотеки(ДЛЛ) возникает возникает ошибка
Здравствуйте!! Ребята, подскажите, по такому вопросу написал код создания кнопки на форме при...

5
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
29.04.2015, 22:48 2
Лучший ответ Сообщение было отмечено ghostfeeling как решение

Решение

Пишет, что в файле Pr6_3.cpp, тоже есть определение функции void program6_3().

Добавлено через 53 секунды
Цитата Сообщение от ghostfeeling Посмотреть сообщение
Код непосредственно самой программы, в которой выдаёт ошибку.
Файл Pr8_1.cpp?
1
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
29.04.2015, 22:52 3
Лучший ответ Сообщение было отмечено ghostfeeling как решение

Решение

ghostfeeling, ну собственно ошибка в том, что функция program6_3 определена дважды. В файле Pr6_3.cpp и в каком-то еще. Посмотри какие файлы участвуют в сборке и устрани дубликат имен.
1
0 / 0 / 1
Регистрация: 19.12.2013
Сообщений: 18
29.04.2015, 23:57  [ТС] 4
Угу, 8_1. Пофиксил, вроде бы, однако пишет уже другую:

C++
1
Ошибка    6   error C4716: program6_3: должна возвращать значение c:\users\илья\desktop\mylabs(1sem)\consoleapplication2\pr8_1.cpp    61  1   My Labs(1sem)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <iomanip>
 
using namespace std;
 
float lab1_1(float x_val) {
    float
        a_value = 0.7,
        с_value = 2.1;
 
    return (sin(x_val) / sqrt(1 + pow(a_value, 2) * pow(sin(x_val), 2))) - с_value * log((a_value * x_val));
}
float *lab1_2(float a_val, float b_val, float h_val) {
    float answer[2];
 
    answer[0] = (a_val + b_val) / 2 * h_val;
    answer[1] = 3 / h_val * (a_val + sqrt(a_val * b_val) + b_val);
 
    return answer;
}
 
// 6.1
int program6_1(int size_array) {
    // Создаем динамический массив из N элементов(N - вводится с клавиатуры)
    int *nums_array = new int[size_array];
 
    // Забиваем массив рандомными числами от 11 до 14
    for (int i = 0; i < size_array; i++) nums_array[i] = rand() % 4 + 11;
 
    int max_arr_val = nums_array[0];
    for (int i = 0; i < size_array - 1; i++) {
        if (max_arr_val < nums_array[i + 1]) {
            max_arr_val = nums_array[i + 1];
        }
    }
    return max_arr_val;
}
//
// 6.3
int program6_3() {
    float a_value = 1, b_value = 2, n_count = 18, step = (b_value - a_value) / n_count, old_step = step;
    cout << "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _" << endl;
    cout << "|                 |                 |" << endl;
    cout << "|        F1       |        F2       |" << endl;
    cout << endl;
    cout.flags(ios::fixed);
 
    float *f1_arr = new float[int(n_count)];
    float *f2_arr = new float[int(n_count)];
 
    for (int i = 0; i < n_count; i++) {
        f1_arr[i] = 1 + pow(2, step + 5);
        cout << setprecision(2) << " F1(" << step << ") = " << f1_arr[i];
 
        f2_arr[i] = pow((step - 1), 3);
        cout << setprecision(2) << "   F2(" << step << ") = " << f2_arr[i] << endl;
 
        step += old_step;
    }
    cout << "|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|" << endl << endl;
}
//
void program8_1() {
    setlocale(0, "");
    cout << "1.1 - Введите значение Х для задания: ";
    float x_val;  cin >> x_val;
    cout << lab1_1(x_val) << endl;
    cout << endl << "1.2 - Введите значение переменных A B H (через пробел): ";
    float a_val, b_val, h_val; cin >> a_val >> b_val >> h_val;
    float *answer_lab1_2 = lab1_2(a_val, b_val, h_val);
    cout << "Площадь трапеции: " << answer_lab1_2[0] << endl;
    cout << "Объем усеченного конуса: " << answer_lab1_2[1] << endl;
 
    cout << endl << "6.1 - Введите кол-во чисел в массиве: ";
    int arr_count; cin >> arr_count;
    cout << "Максимальное значение этого массива: " << program6_1(arr_count) << endl << endl;
 
    cout << endl << "6.3:" << endl;
    program6_3();
 
    cout << endl;
    system("pause");
}
return program6_3; не позволяет, пишет:

C++
1
2
3
Ошибка    6   error C2440: return: невозможно преобразовать "int (__cdecl *)(void)" в "int"   C:\Users\Илья\Desktop\MyLabs(1sem)\ConsoleApplication2\Pr8_1.cpp    61  1   My Labs(1sem)
 
    7   IntelliSense: тип возвращаемого значения не соответствует типу функции    c:\Users\Илья\Desktop\MyLabs(1sem)\ConsoleApplication2\Pr8_1.cpp    61  9   My Labs(1sem)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
30.04.2015, 00:03 5
Лучший ответ Сообщение было отмечено ghostfeeling как решение

Решение

Цитата Сообщение от ghostfeeling Посмотреть сообщение
однако пишет уже другую:
Ну русским же языком написано:
Цитата Сообщение от ghostfeeling Посмотреть сообщение
program6_3: должна возвращать значение
Смотрим объявление
Цитата Сообщение от ghostfeeling Посмотреть сообщение
int program6_3()
Тип возвращаемого значения - int
теперь реализацию:
Цитата Сообщение от ghostfeeling Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int program6_3() {
    float a_value = 1, b_value = 2, n_count = 18, step = (b_value - a_value) / n_count, old_step = step;
    cout << "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _" << endl;
    cout << "|                 |                 |" << endl;
    cout << "|        F1       |        F2       |" << endl;
    cout << endl;
    cout.flags(ios::fixed);
 
    float *f1_arr = new float[int(n_count)];
    float *f2_arr = new float[int(n_count)];
 
    for (int i = 0; i < n_count; i++) {
        f1_arr[i] = 1 + pow(2, step + 5);
        cout << setprecision(2) << " F1(" << step << ") = " << f1_arr[i];
 
        f2_arr[i] = pow((step - 1), 3);
        cout << setprecision(2) << "   F2(" << step << ") = " << f2_arr[i] << endl;
 
        step += old_step;
    }
    cout << "|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|" << endl << endl;
}
где return? Нет returnа.

Память освобождать кто будет?
1
0 / 0 / 1
Регистрация: 19.12.2013
Сообщений: 18
30.04.2015, 00:10  [ТС] 6
Поставил return(0); Скомпилировалась. Спасибо всем за помощь.
0
30.04.2015, 00:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2015, 00:10
Помогаю со студенческими работами здесь

Где и как объявить пространство имен в проекте
Помогите разобраться с Visual Studio 2012 Express . Дело в том,что ранее я учился программировать...

Как в одном проекте сделать два пространства имен?
сделал так. но выводит только то что в namespace Laba, a arifm не выводит в консоль using...

Как в Visual Studio в проекте .NET CORE 2.0 разрулить трабл одинаковых имён в сборках
Вобщем обновился сегодня до core 2.0 и вылезла нетипичная проблема которая взорвала мне мозг. ...

Передача объектов из фукнций
Понемногу изучаю С++. Поэтому вопрос нубский. Есть код: #include &lt;iostream&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru