Форум программистов, компьютерный форум, киберфорум
Наши страницы

Абстрактный шаблонный класс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С клавиатуры вводится выражение вида с ор с (с-цифра, ор-знак операции). Вычислить значение выражения. Использовать оператор вариантов. http://www.cyberforum.ru/cpp-beginners/thread169322.html
Буду благодарен!=(( 1. С клавиатуры вводится выражение вида с ор с (с-цифра, ор-знак операции). Вычислить значение выражения. Использовать оператор вариантов. 2. Вывести на экран второго и...
C++ Операции с векторами и матрицами а) Написать программу, которая выполняет следующую операцию : Q = X +3*Y Где X, Y, Q – векторы размером 20x1. Все элементы векторов X і Y заполнить единицами. Также программа должна предлогать... http://www.cyberforum.ru/cpp-beginners/thread169316.html
Вопрос по программе. Нужно протабулировать ф-цию C++
Приветствую вас дамы и господа Тут такое дело... Задание: Код: # include <iostream.h> # include <conio.h> # include <math.h>
Экстремумы Матрицы и Подпрограммы C++
Здраствуйте помогите пожалуйста с задачками на С++! 1) Вычислите результат, указанный в варианте задания. Константа A (если она есть в варианте) и вектора X и (или) Y задаются вводом. Размер...
C++ класс. ввод данных http://www.cyberforum.ru/cpp-beginners/thread169296.html
Есть класс. У каждого имени - свое числовое значение. Нужно сделать так, чтобы после заполнения поля "имя" вылазило типа этого: "Сколько у этого человека будет значений?", ввести эти значения, и...
C++ Удаление цифр из символьной строки Доброго всем времени суток :) Такая задача: на языке C нужно составить программу удаления из строки символов только цифры. Например, строка "dfg546sv435", должно получиться "dfgsv". Поможете? подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.09.2010, 17:09
Цитата Сообщение от alexzak Посмотреть сообщение
Зачем возвращать const ConsoleMatr& ? Какой цели это служит? Если ориентироваться на стандартные классы и делать как в них сделано, то там возвращается просто по ссылке. Например, класс complex (http://cplusplus.com/reference/std/complex/complex/operators/):
C++
1
2
3
4
5
6
*** complex member functions: ***
complex<T>& operator= (const T& val);
complex<T>& operator+= (const T& val);
complex<T>& operator-= (const T& val);
complex<T>& operator*= (const T& val);
complex<T>& operator/= (const T& val);
А остальные операторы - просто по значению (тоже без const):
C++
1
2
*** global functions: ***
template<class T> complex<T> operator+(const complex<T>& lhs, const complex<T>& rhs);
Ну, здесь я могу сослаться на книгу Скотта Майерса «Эффективное использование C++. 50 рекомендаций…», правило 21 которой называется «Везде, где только можно, используйте const». Там он приводит пример перегрузки оператора
const Rational operator*(const Rational& lhs, const Rational& rhs);
Он мотивирует здесь const тем, что иначе будут возможны вещи, которые он называет надругательством над здравым смыслом:
Rational a, b, c;

(a * b) = c;

Далее он пишет, что один из критериев хорошо определенного пользовательского типа – это отсутствие необоснованной несовместимости с поведением встроенных типов.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru