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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Pushkin
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 67
#1

В чём соль?? - C++

29.03.2011, 01:39. Просмотров 438. Ответов 8
Метки нет (Все метки)

В чём проблема??? Кричит:
error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class mov' (or there is no acceptable conversion)

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
#include <iostream.h>
#include <math.h>
 
 
class mov
{
protected:
    int a,d,s;
public:
    mov(int a_=0);
    int res();
    mov operator +(int);    
    mov operator -(int);     
};
 
mov::mov(int a_)
{
    a=a_; 
}
 
int mov::res()
{   
    return a;   
}
 
 
mov mov::operator + (int d)
{
    mov s;
    s.a+=d;
    return s;
}
 
mov mov::operator - (int d)
{
    mov s;
    s.a-=d;
    return s;   
}
 
void main()
{   
    mov t(4);   
    cout<<(t+5);
    cout<<(t-8);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2011, 01:39     В чём соль??
Посмотрите здесь:

Компилятор выдает ошибку при объявлении массива. Не могу понять где соль - C++
Объясните пожалуйста в чем моя ошибка. Вот исходник #include &lt;iostream&gt; // cin, cout,endl #include &lt;math.h&gt; // Мат функции ...

в чём ошибка? - C++
Программа не дописанная. #include &lt;iostream&gt; // подключение библиотеки ввода-вывода #include &lt;conio.h&gt; // подключение библиотеки...

В чём ошибка? - C++
#include &lt;std_lib_facilities.h&gt; int main() { setlocale(0, &quot;&quot;); cout &lt;&lt; &quot;Как дела? \n&quot;; string c; if (cin &gt;&gt; c == &quot;Хорошо&quot;)...

В чём ошибка? - C++
#include &lt;std_lib_facilities.h&gt; int func1(int a) { int chisla; for (int i=0; i&lt;10; i++) { cin &gt;&gt; chisla; if (chisla &gt;...

В чём ошибка? - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main (){ const char*str1; cin.getline(str1,255); cout&lt;&lt;str1; ...

в чём ошибка - C++
void load_file (queue *q) { char path; int count=0; system(&quot;cls&quot;); printf (&quot;\nVvedite put', imja i rashirenie...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
x1Mike7x
216 / 129 / 6
Регистрация: 06.11.2010
Сообщений: 234
29.03.2011, 01:59     В чём соль?? #2
C++
1
2
3
4
5
6
#include <iostream>
#include <сmath>
 
using namespace std;
 
.....// код
Ну или для каждого сиаута прописать пространство имён. Выйдет так:
C++
1
std::cout<<(t+5);
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
29.03.2011, 02:03     В чём соль?? #3
Ну правильно говорит. Для класса mov операция "<<" не определена. Компилятор не читает мыслей и не знает, чего от него ждут.
Pushkin
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 67
29.03.2011, 02:07  [ТС]     В чём соль?? #4
lemegeton это что и для этой операции писать отдельный перегруженый оператор???
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,741
29.03.2011, 02:18     В чём соль?? #5
ага
и при этом еще решить что это
сдвиг или вывод
Pushkin
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 67
29.03.2011, 02:20  [ТС]     В чём соль?? #6
Но почему тогда, то что мы с преподом разбирали на паре все работает, а вот то что я написал нет???
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,741
29.03.2011, 02:28     В чём соль?? #7
А что вы разбирали
(лучше с кодом)
Pushkin
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 67
29.03.2011, 02:35  [ТС]     В чём соль?? #8
Те же самые перегрузки, только у меня кода нету, не скинул=(((
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2011, 02:54     В чём соль??
Еще ссылки по теме:

В чём ошибка? - C++
Здравствуйте! Хотел написать программу для смены пароля на тот что имеется в указаном файле но почему-то она не работает можете подсказать...

В чём ошибка - C++
собственно вот. программа должна вывести логин, но не выводит его. по каким средствам можно заставить программу вывести логин #include...

В чём ошибка? - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #define PI 3.14159265 using namespace std; int main...

в чём ошибка? - C++
#include &lt;iostream.h&gt; #include &lt;math.h&gt; const n=4, n0=4, m=2, m0=2; const double a=0.98, c=1.1; void proc(double b, int k, int s,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,741
29.03.2011, 02:54     В чём соль?? #9
значит не теже
раз не работает
[quote=Pushkin;1497118]mov mov::operator - (int d)
{
mov s;
s.a-=d;
return s;
}
вот если бы ты написал
mov mov::operator - (int d)
{
mov s;
s.a-=d;
return s.a;
}
То работало бы
потому что вернулся бы int
а cout<< знает что с int ом делать
и вообще класс у тебя какой то интересный
mov s; где конструктор без параметров как ты это создавать будешь?


Цитата Сообщение от Pushkin Посмотреть сообщение
protected:
int a,d,s;
Почему лишние члены


Цитата Сообщение от Pushkin Посмотреть сообщение
mov mov::operator + (int d)
{
mov s;
s.a+=d;
return s;
}
зачем та создаешь новый объект класса(он и не создастся точнее не скомпилируется нет конструктора)
Может ты это имел ввиду оператор + прибавляет к члену a число d и возвращает a
тогда это должно выглядеть так
C++
1
2
3
4
5
mov mov::operator + (int d)
{
        a+=d;// можно this->a+=d;
        return a;
}
оператор для сложения класса с классом
C++
1
2
3
4
5
mov mov::operator + (mov d)
{
        a+=d.a;// можно this->a+=d.a;
        return a;
}
остальное поправь сам
Yandex
Объявления
29.03.2011, 02:54     В чём соль??
Ответ Создать тему
Опции темы

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