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

No operator found which takes a right-hand operand - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти количество элементов массива вещественных чисел, дробная часть которых равна 0,5 http://www.cyberforum.ru/cpp-beginners/thread1008385.html
Найти количество элементов массива вещественных чисел, дробная часть которых равна 0,5
C++ В чем ошибки ? #include<iostream> using namespace std; int main() { const int n = 10; int mas; int i; http://www.cyberforum.ru/cpp-beginners/thread1008378.html
C++ Ошибка в указателе
Необработанное исключение по адресу 0x6F274F98 (msvcr110d.dll) в Динамическая матрица.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFEEEFEE2. вот что выводит когда ввожу матрицы int main() { setlocale(LC_ALL, "Russian"); int N,M,Y,U; cout << "Введите размер первой" << endl; cin >> N >> M; int** p=new int*;
C++ Загвоздка с объявлением переменной
Всем доброго времени суток. Недавно начал изучать С++ по Дейтелу. Есть такой пример программы, который прерывает цикл при определенном значении x при помощи break; //Применение break в структуре for #include "stdafx.h" #include <conio.h> #include <iostream> #include <iomanip> using namespace std; int main() {
C++ Иерархия классов http://www.cyberforum.ru/cpp-beginners/thread1008353.html
Доброе время суток! есть иерархия классов: #include <iostream> class date { int day; public: data(int day0){ day = day0
C++ Как написать программу на С++, чтобы можно было вводить матрицу с клавы и в итоге она появилась на экране? #include<iostream> using namespace std; int main() { int n,m; cout<< " Vvedite razmer: ""\n"; cin>>n>>m; int *a=new int; cout<< " Zapolnite massiv: ""\n"; for (int i=0; i<n; i++) подробнее

Показать сообщение отдельно
Nikcharn
 Аватар для Nikcharn
71 / 53 / 3
Регистрация: 31.07.2009
Сообщений: 149
15.11.2013, 08:57     No operator found which takes a right-hand operand
Кто подскажет в чем ошибка?

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <vector>
 
class LongNumber
{
public:
    
    LongNumber()
    {
    }
 
    LongNumber(std::vector <int> a)
    {
        box.resize(a.size());
        for (int i = 0; i < a.size(); i++)
        {
            box[i] = a[i];
        }
    }
 
    void pushBack(int number)
    {
        box.push_back(number);
    }
 
    int getSize()
    {
        return box.size();
    }
 
    int getNumber(int pos)
    {
        return box[pos];
    }
    
    void reverseUp()
    {
        int condition = box.size() / 2;
        int glass, last = box.size() - 1;
 
        for (int i = 0; i < condition; i++)
        {
            glass = box[i];
            box[i] = box[last - i];
            box[last - i] = glass;
        }
    }
 
    void reverseBack()
    {
        int condition = box.size() / 2;
        int glass, last = box.size() - 1;
 
        for (int i = 0; i < condition; i++)
        {
            glass = box[i];
            box[i] = box[last - i];
            box[last - i] = glass;
        }
    }
 
    void print()
    {
        int pos = 0;
        
        while (!box[pos])
        {
            pos++;
        }
        
        for (int i = pos; i < box.size(); i++)
        {
            std::cout << box[i];
        }
    }
 
    LongNumber operator* (LongNumber & obj)
    {
        int length = box.size() + obj.getSize() + 1;
        std::vector <int> c;
        c.resize(length);
 
        for (int i = 0; i < box.size(); i++)
        {
            for (int j = 0; j < obj.getSize(); j++)
            {
                c[i + j] += box[i] * obj.getNumber(j);
            }
        }
 
        for (int i = 0; i < c.size() - 1; i++)
        {
            c[i+1] +=  c[i] / 10;
            c[i] =  c[i] % 10;
        }
        
        int last = c.size() - 1;
 
        while (!c[last])
            last--;
        c.resize(last + 1);
        return LongNumber(c);
    }
 
    LongNumber &operator= (LongNumber &obj)
    {
 
        box.resize(obj.getSize());
 
        for (int i = 0; i < obj.getSize(); i++)
        {
            box[i] = obj.getNumber(i);
        }
 
        return *this;
    }
 
private:
    std::vector <int> box;
};
 
int main()
{
    int k;
    std::cin >> k;
    
    LongNumber a, b, c;
    a.pushBack(5);
    a.pushBack(5);
    b.pushBack(3);
    b.pushBack(6);
    c.pushBack(1);
 
    a.reverseUp();
    b.reverseUp();
 
    for (int i = 0; i < k - 1; i++ )
    {
        c = c * a;
    }
    
    c = c * b;
 
    c.reverseBack();
    c.print();
    
    
}
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'LongNumber' (or there is no acceptable conversion)
fd738c-suxzyq(105): could be 'LongNumber LongNumber::operator =(LongNumber &)'
while trying to match the argument list '(LongNumber, LongNumber)'
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru