Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Не работает преобразование с c_str() Доброго времени суток. Пытаюсь определить расширение найденного файла путем сравнения со строкой: if(NULL != strstr(MyFindData.cFileName.c_str(),extention.c_str()) получаю ошибку: выражение слева от ".c_str" должно представлять класс, структуру или объединение Не пойму что делать. https://www.cyberforum.ru/ cpp-beginners/ thread1993894.html Структура ZNAK C++
Не могу понять как это делать,может кто поможет Выполнить упражнения из лабораторной работы «Структуры», оформив ввод данных в массив указателей на структуры и пункты задания в виде функций. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается. #include <iostream> #include <cmath> #include...
C++ Найдите площадь треугольника по двум его сторонам и углу между ними найдите площадь треугольника по двум его сторонам и углу между ними. Это все сделать в Си++. Пожалуйста помогите https://www.cyberforum.ru/ cpp-beginners/ thread1993870.html C++ Отобразить матрицу симметрично относительно побочной диагонали https://www.cyberforum.ru/ cpp-beginners/ thread1993863.html
Как отобразить матрицу симметрично относительно побочной диагонали в с++?
C++ Функция, которая выводит список автомобилей с заданным количеством одинаковых цифр
Помогите написать программу. В файле содержатся номера автомобилей, стоящих на стоянке (123, 467, 129 и др.) Написать функцию, которая выведет сначала список автомобилей с тремя одинаковыми цифрами, потом с двумя и в конце все остальные. Двоичные файлы создавать программно с использованием отдельной функции. Если что-то не так написал - извините, это первое сообщение, которое я пишу тут) Заранее...
C++ Реализация анкеты методом реализации линейного списка Получил такое вот задание: Анкета для опроса населения содержит две группы вопросов. Первая группа содержит сведения о респонденте: * возраст; * пол; * образование (начальное, среднее, высшее). Вторая группа содержит собственно вопрос анкеты, ответом на который может являться либо ДА, либо НЕТ. Написать программу, которая: * обеспечивает начальный ввод анкет и формирует из них линейный... https://www.cyberforum.ru/ cpp-beginners/ thread1993830.html
C++ Создать новый файл из тех компонент исходного файла, сумма цифр которых больше четырех, но меньше девяти https://www.cyberforum.ru/ cpp-beginners/ thread1993823.html
Записать в файл последовательного f доступа n первых натуральных четных чисел. Создать новый файл из тех компонент исходного файла, сумма цифр которых больше четырех, но меньше девяти?
Необходимо зарезервировать m мест до города N на k-й день недели с временем отправления поезда не позднее t C++
Подскажите, как это сделать В кассе хранится информация о поездах на ближайшую неделю: дата выезда, пункт назначения, время отправления, число свободных мест. Необходимо зарезервировать m мест до города N на k-й день недели с временем отправления поезда не позднее t часов. Вывести время отправления или сообщение о невозможности выполнить заказ. Ключ: число свободных мест
C++ Работа с бинарными файлами Написать программу для обработки информации о планшетах. Информация включает следующие данные: - Компания-производитель. - Размер планшета. - Вес планшета. - Цена планшета. https://www.cyberforum.ru/ cpp-beginners/ thread1993814.html C++ Сортировка очереди по возрастанию элементов https://www.cyberforum.ru/ cpp-beginners/ thread1993811.html
Прошу прощения, я совсем зелёный, плюс к этому обратиться больше некуда. Задание: формирование очереди, содержащей целые числа, и упорядочивания по возрастанию элементов в этой очереди (в процессе упорядочивания элементы очереди перемещаться не должны). Меня немного удивляют ошибки, я попросту не понимаю, что я делаю не так. 1>d:\XXX.cpp(14): error C2143: синтаксическая ошибка: отсутствие...
C++ Преобразование int в float (битовый перенос)
Ребят, нигде в интернете не нашел ответа Битовые сдвиги с float не работают Нужно побитово перенести биты INT в float Так что бы трансформация: int I(0x8fa4c756); // Для примера float F; I >> F; // Перегруженные битовые переносы из I в F I << F; // и из F в I; cout << hex << "0x" << a; Вывела результат: 0x8fa4c756
C++ Не получается заменить строки на столбцы я нахожу мин и мах в каждой строке а потом меняю их местами int max,min,t; for(int j=0; j<n; j++) { min=0; max=0; for(int i=0; i<m; i++) { if(a<a) min=i; https://www.cyberforum.ru/ cpp-beginners/ thread1993790.html
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 3
0

При вызове метода функционального объекта в шаблонной функции ошибка компиляции C2039 - C++ - Ответ 10495570

30.05.2017, 19:52. Показов 1571. Ответов 4
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Объект класса Entry - это запись в журнале экзаменационной сессии: номер зачетки, фамилия, курс, группа, дисциплина, оценка. В задаче есть контейнер из этих записей.
Проблема такая: возникает ошибка компиляции Ошибка C2039 getAvrMark: не является членом "std::basic_string<char,std::char_traits<char>,std::allocator<char>>". Вот код функции (она является методом шаблонного класса Container, у которого поле с - это контейнер стандартной библиотеки):

C++
1
2
3
4
5
template<class Calc>
double calcAverageMark(Calc calc) const {
   std::for_each(c.begin(), c.end(), calc);
   return calc.getAvrMark(); //Ошибка тут! 
}
Есть также class MyContainer: public Container<Entry>, специализирующий Container, внутри которого есть такие методы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//query - это значение поля, вводимое пользователем, то есть, например, "мат. анализ"
//функция возвращает среднюю оценку по дисциплине
double MyContainer::calcAverageMarkByDiscipline(const std::string query) const {
    AvrMarkByDiscipline calc = AvrMarkByDiscipline(query);
    return calcAverageMark(calc); 
}
 
//функция возвращает среднюю оценку по курсу (заданному параметром query)
double MyContainer::calcAverageMarkByCourse(const int query) const {
    AvrMarkByCourse calc = AvrMarkByCourse(query);
    return calcAverageMark(calc);
}
 
//функция возвращает среднюю оценку по группе
double MyContainer::calcAverageMarkByGroup(const std::string query) const {
    AvrMarkByGroup calc = AvrMarkByGroup(query);
    return calcAverageMark(calc);
}
И вот код функциональных объектов:

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
//вычисляют среднюю оценку
 
class AvrMarkByDiscipline
{
private:
    std::string discipline;
    int count = 0;
    int sum = 0;
public:
    AvrMarkByDiscipline(const std::string d);
    double getAvrMark();
    void virtual operator()(const Entry en);
};
 
class AvrMarkByCourse
{
private:
    int course;
    int count = 0;
    int sum = 0;
public:
    AvrMarkByCourse(const int crs);
    double getAvrMark();
    void virtual operator()(const Entry en);
};
 
class AvrMarkByGroup
{
private:
    std::string group;
    int count = 0;
    int sum = 0;
public:
    AvrMarkByGroup(const std::string grp);
    double getAvrMark();
    void virtual operator()(const Entry en);
};
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
AvrMarkByDiscipline::AvrMarkByDiscipline(const std::string d) {
    discipline = d;
}
 
double AvrMarkByDiscipline::getAvrMark() {
    return sum / count;
}
 
void AvrMarkByDiscipline::operator()(const Entry en) {
    if (en.getDiscipline() == discipline) {
        ++count;
        sum += en.getMark();
    }
}
 
 
AvrMarkByCourse::AvrMarkByCourse(const int crs) {
    course = crs;
}
 
double AvrMarkByCourse::getAvrMark() {
    return sum / count;
}
 
void AvrMarkByCourse::operator()(const Entry en) {
    if (en.getCourse() == course) {
        ++count;
        sum += en.getMark();
    }
}
 
 
AvrMarkByGroup::AvrMarkByGroup(const std::string grp) {
    group = grp;
}
 
double AvrMarkByGroup::getAvrMark() {
    return sum / count;
}
 
void AvrMarkByGroup::operator()(const Entry en) {
    if (en.getGroup() == group) {
        ++count;
        sum += en.getMark();
    }
}


Вернуться к обсуждению:
При вызове метода функционального объекта в шаблонной функции ошибка компиляции C2039 C++
0
Заказать работу у эксперта
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2017, 19:52
Готовые ответы и решения:

Ошибка сборки при раздельной компиляции шаблонной функции
Помогите с ошибкой, никак не могу найти решение #pragma once #include &lt;iostream&gt; #include...

ошибка при вызове метода объекта
Здравствуйте, ребят, у меня тут вот какое дело - программа запускается, я в ней работаю, дохожу до...

Обрыв функции при вызове метода из объекта другого класса
Почему выполнение функция обрывается на вызове метода из объекта другого класса? DataBuffer.cpp...

Ошибка компиляции при вызове функции
Доброго времени суток Всем! Есть небольшая проблема - МК STM32F030, среда KEIL 5, подключаю...

4
30.05.2017, 19:52
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2017, 19:52
Помогаю со студенческими работами здесь

Ошибка компиляции при вызове функции strcpy
Подскажите пожалуйста чего он ругается

Ошибка компиляции при вызове виртуальной функции
Здравствуйте. Сильно не плюйтесь, в С я не силен. Пишу на джаве, но попал в руки код, в котором...

Непонятная ошибка при вызове функции от тут же создаваемого объекта
Ошибка появляется в строке 42: #include &quot;list.h&quot; #include &lt;iostream&gt; using namespace std; int...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений...

0
Новые блоги и статьи
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru