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

Использование указателей при создании обьекта - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление символа из строки http://www.cyberforum.ru/cpp-beginners/thread234798.html
Как удалить символ (скобку) в заданной символьной строке?
C++ First-chance exception at 0x772dd3c1 in wrhg_killer.exe: 0x40010005: Control-C У меня такая ситуация. Запускаю приложение из своей программы. Запущенное приложение работает до тех пор, пока пользователь из него не выйдет. В приложении прописан выход ctrl-c. Если просто закрывать приложение на крестик, то программа завершается корректно, а если по нажатию ctrl-c, то вываливается сообщение First-chance exception at 0x772dd3c1 in wrhg_killer.exe: 0x40010005: Control-C.... http://www.cyberforum.ru/cpp-beginners/thread234789.html
C++ Множество возвращаемое функцией как результат
Помогите пожалуйста с возвратом множества, как результата работы функции. int Cross(){ set<int> b; for(is=s.begin();is!=s.end();is++) for(iq=q.begin();iq!=q.end();iq++){ if(*is==*iq){ b.insert(*is); }
Точка пересечения 2 прямых в пространствае C++
Помогите кто может!!! Нужен код проги н С++, которая определяет координаты точки пересечения 2 отрезков. Заданы координаты начала и конца отрезков( ). Если отрезки не пересикаются то она должна об этом сообщать в Эдит. Канеш сам мог бы написать, но работы много навалилось, в общем не успеваю((( Добавлено через 2 часа 33 минуты неужели никто не знает???
C++ Структура Student http://www.cyberforum.ru/cpp-beginners/thread234736.html
Описать структуру с именем Student , содержащую следующие поля -фамилия -номер группы -успеваемость массив из 5 элементов написать программу ввод с клавиатеры данных в массив,состоящих из десяти структур типа Student; записи должны быть упорядочены по возрастанию среднего балла #include <iostream> using namespace std;
C++ Массив Помогите пожалуйста написать массив, который будет выводить все нечётные числа (1,3,5,7,9 и так далее). подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.01.2011, 18:27
В Qt все классы унаследованы от одного базового. Если тебе знакомо понятие виртуальных функций, то тебе должен быть понятен и следующий аспект: если есть некоторый достаточно общий метод, реализованный в базовом классе, то он может быть вызван для любого класса-наследника по указателю на объект базового класса (причем будет вызвана именно реализация этого метода для конкретного класса-наследника). К примеру, метод begin класса QPainter принимает указатель на объект класса QPaintEngine, который содержит все необходимые функции для отображения действий класса QPainter ("The QPaintDevice class is the base class of objects that can be painted"). Именно поэтому мы можем одинаково рисовать на поверхности виджета с помощью класса QPainter, будь тот виджет хоть объектом класса QLabel, хоть QGLWidget, хоть определенным пользователем виджетом (если этот виджет косвенно унаследован от QPaintDevice, конечно). Это было бы невозможно сделать, если бы QDeviceEngine передавался по значению.
В Qt при вызове деструктора виджета автоматически вызывается деструктор для всех его "подчиненных" виджетов (например, класс автоматического размещения QLayout удалит все виджеты, которые он хранит). Это позволяеет разработчику не заморачиваться ручным удалением объектов, для которых динамически выделяется память, что избавляет от класса трудновыявляемых ошибок. Это (хранение в классах-контейнерах объектов разных типов, по указателю на базовый тип) было бы невозможно, если бы мы использовали сами объекты, а не указатели на них.
Ну и при передаче объекта по указателю, а не по значению, не приходится копировать весь объект, что для больших классов было бы слишком накладно.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru