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

Перегрузка оператора вывода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Лесенки http://www.cyberforum.ru/cpp-beginners/thread737739.html
Помогите, пожалуйста, реализовать эту задачу на С++. Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий. Требуется подсчитать число лесенок, которое можно построить из N кубиков. Во входном файле записано число N (1<=N<=100).
C++ не получается запись в файл генерирую случайные числа, записываю их в один в файл, потом провожу некоторые вычисления и создаю новый массив, пытаюсь записать его в другой файл, но запись никак не выходит, даже не создается второй файл (gauss1), не могу понять почему, помогите пожалуйста #include <iostream> #include <clocale> #include <conio.h> #include <stdlib.h> #include <time.h> #include <fstream> using... http://www.cyberforum.ru/cpp-beginners/thread737718.html
C++ Немного подкорректировать код
Вот, у меня есть код к программе которая вычисляет квадраты четных элементов массива 3х5, но при выводе результата в консоли выводится и начальный массив повторно. Что сделать чтоб выводился только результат, то есть массив после возведения его четных членов в квадрат.. #include "StdAfx.h" #include <iostream> using namespace std; bool firstFunction(int arr, int n, int m); int...
C++ Найти блок с максимальным количеством точек сочленения
найти блок с максимальным количеством точек сочленения. в код алгоритма по поиску блоков и точек сочленения нужно добавить кусок кода. нужно очень срочно. если кто-то может, сделайте пожалуйста.
C++ Парадигмы: императивная vs ООП http://www.cyberforum.ru/cpp-beginners/thread737692.html
Здравствуйте, форумчане. Меня мучает проблема, можно так сказать, эстетически-идеологического характера. Суть заключается в следующем: Концепция разделения данных и управления данными ООП дает большие преимущества - по крайней мере если алгоритмы имеют сложную структуру, то классы не дают превратиться в кашу из данных и обработчиков этих данных, что может случиться, если использовать...
C++ Нужно исправить программу.Тема строки (Получить последовательно все строки матрицы, исключая...) Дана символьная матрица размера n x m. Получить последовательно все строки матрицы, исключая те, для которых есть равные среди строк с меньшими номерами. Вот текст программы, но она неправильно работает. В чем ошибка, подскажите пожалуйста. #include<iostream.h> #include<conio.h> #include<stdio.h> #include<ctype.h> int main() { int n,m,i,j,z,k,c; подробнее

Показать сообщение отдельно
S_M_L
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 3
19.12.2012, 01:13     Перегрузка оператора вывода
Здравствуйте!
Подскажите пожалуйста как можно решить проблему с перегрузкой оператора.
В моем коде выдает ошибку: error C2440: '=' : cannot convert from 'List::ListItem *' to 'ListItem *'

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
using namespace std;
struct ListItem{
        int x;
        int y;
        ListItem* next;
        ListItem(int x, int y, ListItem* next=NULL)
        {
            this->x=x;
            this->y=y;
            this->next=next;
        }
    };
class List{
public:
    friend struct ListItem;
    struct ListItem{
        int x;
        int y;
        ListItem* next;
        ListItem(int x, int y, ListItem* next=NULL)
        {
            this->x=x;
            this->y=y;
            this->next=next;
        }
    };
    List();
    ~List();
    void AddItem(int,int);
    void Add(const List&);
    List & operator=(const List &);
    friend List operator+(const List&,const List&);
    friend ostream operator<<(ostream&,List&);
private:
    int ItemNum;
    ListItem* first;
    ListItem* last;
};
List::List():ItemNum(0),first(NULL),last(NULL){}
List::~List()
{
    ListItem* current=NULL;
    ListItem* next=first;
    while(next)
    {
        current=next;
        next=next->next;
        delete current;
    }
}
void List::Add(const List&obj)
{
    for(ListItem* current=obj.first; current; current=current->next)
        AddItem(current->x,current->y);
}
void List::AddItem(int x, int y)
{
    ListItem* p=new ListItem(x,y);
    if(!last)
    {
        first=p;
    }
    else
    {
        last->next=p;
    }
    last=p;
    ItemNum++;
}
 
List& List::operator=(const List&obj)
{
    this->first=obj.first;
    this->last=obj.last;
    this->ItemNum=obj.ItemNum;
    return *this;
}
List operator+(const List&lh,const List&rh)
{
    List result;
    result=lh;
    result.Add(rh);
    return result;
}
ostream operator<<(ostream&out, List& obj)
{
    ListItem* current;
    for(current=obj.first; current; current=current->next)
        out << "(" << current->x << ", " << current->y << ")" << " ";
    return out;
}
int _tmain(int argc, _TCHAR* argv[])
{
    List first;
    List second;
    List result;
    first.AddItem(2,3);
    second.AddItem(4,5);
    result=first+second;
    cout<<result;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru