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

Конструктор, немного не понятно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ LoadLibrary http://www.cyberforum.ru/cpp-beginners/thread334650.html
Здравствуйте Нужно подгрузить мою .dll в память. #include <windows.h> HMODULE myDLL = LoadLibraryA("my.dll"); не компилится (error LNK1120: 1 неразрешенных внешних элементов) подскажите как исправить. новичек :scratch:
C++ Наследование Добрый день. Мне нужно реализовать такую структуру классов: есть класс 1, от него наследуются три класса: 2.1, 2.2, 2.3. От этих трех классов нужно множественно унаследовать класс 3. Не возникнет ли каких-нибудь проблем, например, с тем, что все классы 2 будут иметь какое-то одинаковое поле класса 1 и при слиянии их в класс 3 возникнет какой-нибудь конфликт, или в 3 будет три одинаковых метода и... http://www.cyberforum.ru/cpp-beginners/thread334646.html
C++ Помогите с куском кода.
C++ не знаю. Нужен кусок кода. Помогите написать его. Логика следующая. Если в БД (DB) в таблице (table) существует поле (field), то выполнить следующее { Если значение field равно 1, то {сам напишу событие} Если значение field равно 0, то {сам напишу событие} Если значение field не равно 1 и не равно 0, то {сам напишу событие} } В противном случае
Квадрат и прямая C++
Здравствуйте. Помогите пожалуйста написать программу на языке Си(не С++). Дан квадрат с координатами х1,у1 и х2,у2, так же даны координаты прямой х3,у3 и х4,у4. Нужно определить координаты точек пересечения прямой и квадрата.
C++ Ввод значения в функцию класса пользователем (с консоли) http://www.cyberforum.ru/cpp-beginners/thread334615.html
Все привет. Столкнулся с проблемой. К примеру есть класс: class Employee { private: int age; public: int GetAge() const;
C++ compose1 и compose2 Есть ли в MSVC++ альтернатива SGI адаптеров unary_compose и binary_compose?? подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
20.07.2011, 10:38     Конструктор, немного не понятно
Цитата Сообщение от Sick2 Посмотреть сообщение
зачем в этой программе вообще конструктор? Мы ведь его не используем, а вызываем ф-цию set.
По желанию, если хочешь использоваться конструктор - используй, если функцию - используй ее. Посмотрите на какие-либо библиотеки. Для большинства классов имеется возможность совершить действия аналогичные конструктору, набором функций. Дело в том, что при создании объекта чаще воспользоваться удобнее именно конструктором - меньше строк кода, возможность использовать временный объект и т.д. Однако, конструктор подходит лишь для создния объекта. Если требуется изменить свойства объекта уже после его создания, то используются функции.
Для Вашего случая можно придумать пару примеров:
C++
1
2
3
4
balance first(4.3, "cyberforum");
 
balance second;
second.set(4.3, "cyberforum");
В данном случае было создано два тождественных объекта, но во-первых, как уже говорилось, меньше строк кода, а во-вторых вытекающее отсюда следствие - инициализация объекта при создании - не надо искать глазами где же и проводилась ли вообще инициализация.

C++
1
2
3
4
5
6
7
8
9
10
11
12
void print_balance(const balance &b1) {
     char str[80] = { 0 };
     double n = 0;
 
     b1.get(n, str);
     std::cout << str << ": " << n << std::endl;
}
 
int main() {
     print_balance(balance(2.07, "cyberforum"));
     return 0;
}
Демонстрирует создание временного объекта с помощью конструктора.

Тем не менее было бы не разумно отнимать у пользователей класса возможность изменять состояние объекта в процессе работы с ним.

Еще одно замечание. Код просто отвратительный, за него руки отрывать надо автору. Лучше выбросите эту книгу и возьмите какую-либо общепризнанную.
 
Текущее время: 06:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru