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

Перегрузка operator[][][] - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строка: Найти наибольше количество идуших подряд одинаковых символов http://www.cyberforum.ru/cpp-beginners/thread946343.html
дан текст. Найти наибольше количество идуших подряд одинаковых символов
C++ Вызов LoadLibrary из DLL Есть две Dll - DLL_A и DLL_B Использую MS Visual Studio 2010 C++(MFC) Из основной программы загружаю DLL_A через LoadLibrary, далее вызываю функцию из DLL_A, которая должна загрузить DLL_B через LoadLibrary. Так вот загрузка DLL_A и вызов функции проблем не вызывает, но когда пытаюсь вызвать LoadLibrary уже из DLL_A, то система выдает исключение и ничего не работает, т.е. сбой происходит... http://www.cyberforum.ru/cpp-beginners/thread946338.html
Проверить является ли матрица треугольной C++
Всем добрый день. У меня есть матрица, по которой составлен вектор. А как проверить, является ли матрица треугольной? Вот мой код: #include <conio.h> #include <iostream> #include <vector> #include <ctime> using namespace std; int main() {
C++ Строка: Найти наибольшее количество идуших подряд пробелов.
Дано предложения. Найти наибольшее количество идуших подряд пробелов.
C++ Пятнашки http://www.cyberforum.ru/cpp-beginners/thread946274.html
# include <iostream> using namespace std; //# include <russian.h> # include <stdlib.h> # include <conio.h> # include <time.h> const int SIZE=4; void main() {
C++ Нужны исходники кода из книги от Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес книга: Приемы объектно-ориентированного проектирования. Паттерны проектирования автор: Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес где взять исходники. спасибо. ps. по почте не приходит. подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.09.2013, 11:45  [ТС]     Перегрузка operator[][][]
Используя композицию операций в функции это когда есть выражение Vector A, B; и мы вызываем A + B
, то у нас есть функция перегруженная operator+() которая возвращает объект допустим addVec в котором хронятся ссылки на вектора A и B в нем ничего не происходит просто ссылки хронятся - этот прием называется замыкание (дословно слова из книги "Объект порождаемый операцией* (у нас это операция+), соответствует тому что во многих других областях (и языках программирования) принято называть замыканием (closure) ). Ну тут похоже полюбом будет хоть одно копирования, просто без копирования не обойтись, а от если есть допустим тройное выражение
А+B-C, тут А+B порождает объект addVec назовем его X и уже X-B порождает еще один объект допустим threeVector A в котором хоронятся три ссылки на объекты типа Vector. в этом объекте есть допустим оператор приведения типа который уже вычисляет сохраненные ссылки в новый объект делает вычисление A+B-C.

По такой схеме у нас всего происходит одно копирование. без создание временного объекта, если просто перегрузить operator+ и operator- то будет минимум два одно копирование и одно создание временного объекта, A+B породит временный объект для оperator-( временный объект, C).

От для закрепления материала, нужно эту схему применить для создания высокоэффективной операции индексации, что бы она происходила без порождения временного объекта
 
Текущее время: 20:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru