Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
1

Ошибка с конструктором

26.09.2017, 21:28. Показов 1691. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, такая проблема, создал класс, сделал прототип конструктора, перешел в другой файл уже .cpp для реализации конструктора , и выдает ошибку. "Не предоставляет инициализатора для: "
Класс : (Заголовочный файл)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Seller  
 
{
public:
    Seller(double volume);
    double Calculation();
    double ReturnVolume();
 
private:
    double main_volume;
    const double salary;
 
};
реализация конструктора . (Уже .cpp)

C++
1
2
3
4
5
6
7
Seller::Seller(double volume) 
 
{
 
 
 
}
Компилятор подчеркивает красным первую скобку конструктора и пишет ошибку ,которую я писал выше.
Делал другое задание, всё было хорошо, такой ошибки не было.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2017, 21:28
Ответы с готовыми решениями:

Ошибка с конструктором
Students::Students(UnicodeString _marks) { for (int i = 0; i < 5; i++) marks = _marks; } ...

Ошибка с конструктором копирования
В коде в строках 59 и 60 компилятор выдает ошибку:#include<iostream> #include<conio.h> ...

Ошибка инициализации объекта, конструктором класса
Добрый день. Написал программу. Создание класса (упражнение из книги Дейтеля) "Создайте класс...

В чем разница между конструктором по умолчанию и конструктором с параметрами?
Объясните пожалуйста в чем разница между конструктором по умолчанию и конструктором с параметрами,...

7
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
26.09.2017, 21:35 2
Лучший ответ Сообщение было отмечено axela002 как решение

Решение

константные поля надо или на месте или в списке инициализации в конструкторе инициализировать:
C++
1
2
3
4
Seller::Seller(double volume) 
   : salary(0)
{ 
}
1
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
26.09.2017, 21:35 3
Вы в .cpp файл подключили заголовок Seller.h ?
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
26.09.2017, 21:36 4
.h в .cpp подключен? Подчёркивание - это не всегда аргумент для выводов. Компиляцию запусти.
0
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
26.09.2017, 21:40  [ТС] 5
Цитата Сообщение от nd2 Посмотреть сообщение
.h в .cpp подключен?
Да, конечно.
Вывод компилятора
error C2758: Seller::salary: требуется инициализация в списке инициализации базовых классов и членов

Добавлено через 15 секунд
Цитата Сообщение от DU3 Посмотреть сообщение
константные поля надо или на месте или в списке инициализации в конструкторе инициализировать:
Не понял, эта ошибка из-за ?
C++
1
const double salary;
И можете объяснить подробнее об этом, я не совсем понял

Добавлено через 53 секунды
Что именно означает эта запись ?
C++
1
:salary(0)
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
26.09.2017, 21:42 6
Цитата Сообщение от axela002 Посмотреть сообщение
error C2758: Seller::salary: требуется инициализация в списке инициализации базовых классов и членов
Уже понятней. DU3 ответил.
0
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
26.09.2017, 21:54  [ТС] 7
Блин, только понял,что не инициализировал константную переменную. Спасибо всем.
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
26.09.2017, 22:01 8
Цитата Сообщение от axela002 Посмотреть сообщение
только понял,что не инициализировал константную переменную.
Константа должна инициализироваться при объявлении (с определением), а значит, ещё до захода в тело конструктора, когда память уже выделена, и возможно только присваивание. Отсюда следует:
Цитата Сообщение от DU3 Посмотреть сообщение
константные поля надо или на месте или в списке инициализации в конструкторе инициализировать:
0
26.09.2017, 22:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2017, 22:01
Помогаю со студенческими работами здесь

Ошибка с конструктором
Помогите исправить ошибку в классе Save package project1; public class Project1 { ...

Ошибка с конструктором
uses ABCObjects, GraphABC; const StarR = 5; N = 4; procedure CreateFractal(x, y, x1, y1,...

Ошибка при работе с конструктором WinForms
Возникла такая проблема. Я создал проект WinForms, все работает, компиляция проходит, но при...

Ошибка при создании формы с собственным конструктором. Автоприведение типов.
Вечер добрый, помогите исправить ошибку. С++ Builder 6.0 Создаю дополнительные конструкторы в...


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

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