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

Ошибка: переопределение; различные базовые типы

11.11.2019, 18:13. Показов 4116. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! выдает ошибку error C2371: a: переопределение; различные базовые типы. Не знаю как исправить. Нужна помощь!
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
#include <iostream>
#include <string>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <clocale>
using namespace std;
template <typename T>
T* sozdanie(int l) {
    int* a;
    a = new int[l];
    for (int i = 0; i < l; i++)
    {
        int* a = new int[l];
    }
    return a;
}
template <typename T>
void initialize(int* a, int l)
{
    srand(time(0));
    for (int i = 0; i < l; i++)
    {
        a[i] = rand() % 11 - 5;
        cout << a[i] << endl;
    }
}
template <typename T>
void summa1(int* a, int l)
{
    setlocale(LC_ALL, "ru");
    int s;
    for (int i = 0; i < l; i++)
    {
        s = 0;
        if (i % 2 != 0) {
            s = s + a[i];
        }
 
    }
    cout << "Сумма нечетных элементов массива=" << s << endl;
}
template <typename T>
void summa2(int* a, int l)
{
    setlocale(LC_ALL, "ru");
    float sum = 0.0;
    for (int i = 1; i < l - 1; i++)
    {
        sum = sum + a[i];
    }
    cout << "сумма элементов массива расположенных между первым и последним элементом=" << sum << endl;
    cout << "новый массив" << endl;
    for (int i = 0; i < l; i++)
    {
        if (fabs(a[i]) < 1)
 
            a[i] = 0;
        cout << a[i] << endl;
    }
}
int main()
{
    setlocale(LC_ALL, "ru");
    int l(0);
    cout << "Введите кол-во строк в массиве" << endl;
    cin >> l;
    int* a;
    auto* a = sozdanie<double>(l);
    initialize<double>(a, l);
    summa1<double>(a, l);
    summa2<double>(a, l);
    for (int i = 0; i < l; i++)
    {
        delete[] a;
    }
    delete[] a;
    system("pause");
    return 0;
 
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2019, 18:13
Ответы с готовыми решениями:

Ошибка C2371 int32_t: переопределение, различные базовые типы
Разбираюсь в чужем проекте. Проект работал в Qt и возможно на Linux. Хочу запустить его в VS2015....

Переопределение; различные базовые типы
Возникла необходимость собрать что то вроде составного регулярного значения. Написал простенький...

Базовые типы данных
в пачке N листов бумаги размера А4 плотностью Р гр. на квадратный см. Найти вес пачки бумаги с...

Ошибка C2371 переопределение; различные базовые типы
Добрый день Подскажите, пожалуйста, почему выдает ошибку C2371 переопределение; различные базовые...

6
2129 / 1212 / 503
Регистрация: 11.10.2018
Сообщений: 6,112
11.11.2019, 18:24 2
В функции sozdanie создаете переменную - указатель на целый тип(int*). А возвращается T*. Вместо int* там должно быть T*.

Добавлено через 1 минуту
Прочитайте еще раз, что такое шаблон функции. В функции initialize вообще T не используется.

Добавлено через 50 секунд
В функции summa1 тоже самое.

Добавлено через 1 минуту
Ну и в summa2. Толку от таких шаблонов не будет. Точнее будет - они будут работать как обычные функции + ошибка.
0
0 / 0 / 0
Регистрация: 09.09.2019
Сообщений: 37
11.11.2019, 18:27  [ТС] 3
Хорошо, я обязательно прочитаю! Но не могли бы вы мне помочь исправить ошибку сейчас, потому что я не совсем поняла, так как завтра последний день сдачи лабораторных работ! заранее благодарен!
0
liv
11.11.2019, 18:41
  #4

Не по теме:

ilsur73, хм. Вы еще не определились со своим полом?

Цитата Сообщение от ilsur73 Посмотреть сообщение
я не совсем поняла
Цитата Сообщение от ilsur73 Посмотреть сообщение
заранее благодарен

0
0 / 0 / 0
Регистрация: 09.09.2019
Сообщений: 37
11.11.2019, 18:42  [ТС] 5
определилась) просто почему-то привычка появилась писать от мужского пола...
0
Крашеная
11.11.2019, 18:47
  #6

Не по теме:


Ты девушка и работаешь в мужском коллективе.
Ожидания: ты принцесса, которую ценят, берегут и носят на руках.
Реальность: ты теперь братан.

0
ilsur73
11.11.2019, 18:53  [ТС]     Ошибка: переопределение; различные базовые типы
  #7

Не по теме:

даа у меня в вузе также)

0
11.11.2019, 18:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2019, 18:53
Помогаю со студенческими работами здесь

Ошибка "различные базовые типы" при переопределении класса
Здравствуйте, возникает ошибка при компиляции ...

Контрольная-базовые типы данных в борланд СИ+++
приведите последовательность действий для задания имени файла программы,набора операторов программмы

Ошибка C2371 int32_t: переопределение; различные базовые типы
Здравствуйте. Я перешёл на MVS 2015 и при открытии проекта у меня выдаёт следующие ошибки: Скрин...

Переменные и базовые типы данных
Сложите два вещественных числа типа float с десятью знаками после десятичной точки. Совсем новичок...

Частичные объявления не должны определять различные базовые классы
public abstract class ELEMENT : UserControl { public int info; public void...

Базовые типы и операторы, вести число
В ряду блондинок прибыло, называется... Начала изучать C# по учебнику Васильева А.Н., после второй...


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

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