Форум программистов, компьютерный форум CyberForum.ru

Никогда не использовать конструктор с параметрами? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Коммандер на С++ с исходным кодом для Visual Studio http://www.cyberforum.ru/cpp-beginners/thread800969.html
Добрый день, уважаемый All. Посоветуйте программу на С++ с "хорошим" исходным кодом, написанным под Visual Studio, которую можно взять для изучения. Коммандер - подойдет. )) Я начинающий программист прикладного уровня с опытом работы на VBA, Java, SQL, PHP, Turbo Pascal под DOS. Мне предстоит переносить старые программы многолетней давности под новые ОС. Был выбран С++ под Visual Studio (не С#...
C++ почему то не переводит на другую строку cout << "введенный пункт назначения:" << a[i].pn << ' ' ; cout << "введенный пункт назначения:" << a[i].num struct Train { char pn ; unsigned int num; char time ; }; void Copy (Train &pest, Train bust) //Вспомогательная функция для сортировки (копирование данных из src в dest) { strcpy (pest.pn, bust.pn); strcpy (pest.time, bust.time); http://www.cyberforum.ru/cpp-beginners/thread800941.html
C++ Написать программу, которая печатает таблицу двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных чисел в диапазоне от 1 до 256
Нужно написать программу, которая печатает таблицу двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных чисел в диапазоне от 1 до 256.
out.close выдаёт ошибку C++
#include<fstream> #include<iostream> #include<cstdlib> #include<ctime> #include<conio.h> using namespace std; int main() {
C++ Задача с интервалами http://www.cyberforum.ru/cpp-beginners/thread800924.html
Необходимо из excel вытащить числовые данные. Нужна проверка что бы элементов было минимум 50. Далее нужно разбить массив на одинаковые интервалы (примерно на 3-5). В каждом интервале нужно проверить, что бы было более 5 элементов. То есть, например, числа от 0 да 100 есть, мы их разбиваем на 5 интервалов (0-20,20-40,40-60,60-80,80-100). И необходимо посчитать сколько чисел попало в интервалы (в...
C++ Найти ошибку. Записать 20 целых чисел в массив. Переписать отрицательные в массив А, а положительные в Б Доброго времени суток. Записать 20 целых чисел в массив А. Переписать отрицательные из них подряд в массив В, а положительные - в массив C. Буду благодарен. #include <iostream> #include <cmath> using namespace std; int main() {int A; int B; int C; подробнее

Показать сообщение отдельно
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
05.03.2013, 11:01     Никогда не использовать конструктор с параметрами?
Упустил.

Моделирование человека со вложенным бумажником - не вполне корректно, это раз. Отсюда твоя проблема.
Вложенные класса создаются в порядке их объявления внутри класса, а значит их конструктор вызывается при создании класса, их содержащего. Конструктор ты явно вызвать не можешь, потому у тебя следующие варианты:
1. сделать для бумажника конструктор с параметром и создавать человека, указывая для него, сколько у него денег (посредством передачи конструктору человека нужной цифры и дальнейшей её передачи конструктору с параметром бумажника.)
2. создавать человека с пустым бумажником, и завести функцию, которая будет (наделять его лавэ)

3. изменить модель.

Впрочем, вполне нормальная ситуация, когда ты создаешь человека с пустым бумажником и делаешь для него функу, например, положить в бумажник n лавэ. Это вполне отражает реальную ситуацию. Конструктор же по умолчанию для бумажника, который содержит, полагаю, какое-то поле, логично было бы написать и инициализировать это поле нулём.

Но повторяю, твоя модель подразумевает, что у каждого человека обязательно есть бумажник, как неотъемлемый атрибут. Если в контексте решаемой задачи это нормально, тока в путь

Ответы на далеко идущие выводы.
Ну вообще, когда ты пишешь класс, ты обязан реализовать в нем интерфейс самодостаточный для использования его тобой/кем бы то ни было. Потому да, как бы ни был создан экземпляр, он должен быть инициализирован нормальными значениями и работоспособен.

Другое дело, что едва ли твой кошелек может сам себя наполнять n-й суммой)))

И конечно, твой класс должен предоставлять (как правило) set-, get-методы для пользователей. Надеюсь, нужное написал, если чо, спрашивай.

Пока катал - стока ответов уже)))))
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru