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

Сложение очередей, перегрузить оператор + - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Открытие файла. Сортировка строк http://www.cyberforum.ru/cpp-beginners/thread596623.html
В общем имеется файл со списком... Нужно отсортировать в порядке убывания по одному столбцу Popov.A.N. m 3.8 k Litvinov.A.S. m 3.4 i Fomin.G.E. m 4.5 k Chernov.A.A. m 4.8 k Korolenko.A.F. j 4.6 i Obama.E.N. j 5 n Krasnov.A.A. m 4.2 k Finora.T.N. j 4.4 i Otelo.P.L. m 3 i
C++ Передача функции указатель на элемент std::vector<std::string> Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на std::string void SomeF(std::string* s) { // To Do } В main() создается указатель на std::vector<std::string>, добавляются в него элементы. При попытке написать типа std::vector<std::string>* v = new std::vector<std::string>; SomeF(v); http://www.cyberforum.ru/cpp-beginners/thread596617.html
Стеки C++
Создать стек с числами в диапазоне от –50 до +50.Создать новый стек, в который поместить каждый третий элемент пер-вого стека.
C++ Не открывается файл
#include <stdio.h> #include <iostream> #include <cstdlib> #include <fstream> #include <string> using namespace std; int main(){ int z = 0; FILE* file = fopen("123.txt", "r");
C++ Не работает элементарнейший код http://www.cyberforum.ru/cpp-beginners/thread596592.html
int _tmain() { vector<double> numbers; double number = 0; const double abs_mistake = 0.1; double num_mistake = 0; cout << "Input 2 numbers and press '|': \n"; while(cin >> number) numbers.push_back(number);
C++ TreeView данные об узле (WINAPI) Доброго времени суток :) Существует ли возможность для узлов в TreeView хранить больше информации об элементе, чем одно название? Или необходимо создать свою структуру "дерево" и хранить ее абсолютно отдельно? А в treeview, как элементы, подсовывать только названия узлов? Как быть, если названия узлов, не уникальные ???? О_о Добавлено через 11 минут Может можно ему подсунуть каким то... подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
08.06.2012, 01:18     Сложение очередей, перегрузить оператор +
Цитата Сообщение от VladSharikov Посмотреть сообщение
queue& queue::operator+(queue& r_operand)
первое, что бросается в глаза. Должно быть так:
C++
1
queue queue::operator +(queue const& r_operand) const
Добавлено через 2 минуты
В общем этот оператор не должен изменять состояние объекта, и должен возвращать новый объект, ведь когда пишешь:
C++
1
queue q3 = q1 + q2;
ожидаешь, что ни q1, ни q2 не изменятся, а в q3 будет результат.

Добавлено через 12 минут
Я бы описал этот оператор вне класса в виде дружественной классу функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class queue {
// ...
friend queue operator +(queue const&, queue const&);
// ..
};
 
// ...
queue operator +(queue const& lhs, queue const& rhs) {
   if (lhs.size != rhs.size) {
      throw std::runtime_error("'operator +': operands have different size");   // #include <stdexcept>
   }
 
   queue result(lhs);
   
   queue::node * resNode = result.head;
   queue::node const* rhsNode = rhs.head;
 
   while (resNode != 0) {
      resultNode->data += rhsNode->data;
 
      resNode = resNode->Next;
      rhsNode = rhsNode->Next;
   }
 
   return result;
}
Ну это примерно.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru