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

Конструктор по умолчанию

02.12.2013, 19:07. Показов 1539. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня получается создавать конструктор по умолчанию если в хедере эти значения указаны:
C++
1
2
3
4
5
6
7
8
class Unit
{
protected:
    string name;
    string rang;
    int formSize;
public:
    Unit(string name0 = "U", string rang0 = "R", int formSize0 = 0);
А в cpp-файле:
C++
1
2
3
4
5
Unit::Unit(string name0, string rang0, int formSize0) {
    name = name0;
    rang = rang0;
    formSize = formSize0;
}
А можно ли сделать так, чтобы в хедере не объявлялись значения по умолчанию, а объявлялись в cpp-файле?
Чтобы в хедере было:
C++
1
Unit(string, string, int);
А в cpp:
C++
1
Unit::Unit(string name0 = "U", string rang0 = "R", int formSize0 = 0)
Конструктор работает, но не является конструктором по умолчанию. Есть ли какой-то способ решения, или это невозможно в принципе? Просто очень хочется, чтобы в хедере не было никаких присваиваний и всё было по минимуму
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2013, 19:07
Ответы с готовыми решениями:

Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром?
Добрый день, сразу к делу, есть некий класс class some { int x; public: some(int y = 1)...

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по...

Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать...

6
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
02.12.2013, 19:10 2
1. Аргументы по умолчанию должны быть в заголовочном файле.
2. Если конструктор может быть вызван без аргументов, то это конструктор по уморчанию.
Т.е. в исходном варианте все ок, что именно не устраивает?
0
0 / 0 / 1
Регистрация: 02.12.2013
Сообщений: 20
02.12.2013, 19:15  [ТС] 3
Просто хотел узнать, можно ли значения по умолчанию указывать не в заголовочном файле, чтобы в списке аргументов были только типы, а в реализации конструктора уже показывать, что существуют значения по умолчанию для этих аргументов
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,493
Записей в блоге: 1
02.12.2013, 19:34 4
А как же тогда при компиляции цпп файла, в который подключен h-файл с классом, компилятор узнает, каковы значения по умолчанию?
Компилятор же может видеть только один цпп файл!
0
0 / 0 / 1
Регистрация: 02.12.2013
Сообщений: 20
02.12.2013, 21:20  [ТС] 5
Ну в этом цпп файле же и прописаны эти значения по умолчания, разве нет?
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,493
Записей в блоге: 1
02.12.2013, 21:29 6
Я писал про main.cpp, блин! Файл юнит.цпп в момент компиляции(мейна) вообще не виден!
Вот и ответ! Откуда компилятор узнает твои умолчания?
1
0 / 0 / 1
Регистрация: 02.12.2013
Сообщений: 20
02.12.2013, 21:33  [ТС] 7
Спасибо за разъяснения. Вопрос решён
0
02.12.2013, 21:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2013, 21:33
Помогаю со студенческими работами здесь

Конструктор класса не видит конструктор по умолчанию другого класса
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора...

Конструктор по умолчанию
как использовать конструктор по умолчанию в конструкторе с параметром? К по умолчанию заполняет...

Конструктор по умолчанию
Показывает ошибку : 1 IntelliSense: для класса "tovar" не существует конструктор по умолчанию ...

конструктор по умолчанию
Конструктор student по умолчанию и просто конструктор student подчеркнуты зеленым цветом. Почему?...


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

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