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

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

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

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

29.03.2011, 01:39. Просмотров 446. Ответов 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);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2011, 01:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чём соль?? (C++):

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

В чём ошибка? - C++
Немогу понять где накосячил, после внесения данных программа зависает. Помогите пожалуйста.#include &quot;stdafx.h&quot; #include &quot;cstdlib&quot; ...

В чём ошибка? - C++
Описание проблемы: Открываю файл для чтения и записи. Записываю туда информацию. После этого, если: 1)я перевожу текущую позицию в...

в чём ошибка? - C++
Спичечная модель Профессор Самоделкин решил изготовить объемную модель кубиков из спичек, используя спички для рёбер кубиков....

в чём ошибка? - 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,...

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

8
x1Mike7x
217 / 130 / 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);
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
29.03.2011, 02:03 #3
Ну правильно говорит. Для класса mov операция "<<" не определена. Компилятор не читает мыслей и не знает, чего от него ждут.
0
Pushkin
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 67
29.03.2011, 02:07  [ТС] #4
lemegeton это что и для этой операции писать отдельный перегруженый оператор???
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,061
29.03.2011, 02:18 #5
ага
и при этом еще решить что это
сдвиг или вывод
0
Pushkin
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 67
29.03.2011, 02:20  [ТС] #6
Но почему тогда, то что мы с преподом разбирали на паре все работает, а вот то что я написал нет???
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,061
29.03.2011, 02:28 #7
А что вы разбирали
(лучше с кодом)
0
Pushkin
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 67
29.03.2011, 02:35  [ТС] #8
Те же самые перегрузки, только у меня кода нету, не скинул=(((
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,061
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;
}
остальное поправь сам
1
29.03.2011, 02:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2011, 02:54
Привет! Вот еще темы с ответами:

В чём ошибка ? - C++
Задание: В одномерном массиве целых чисел заменить минимальное значение максимальным. Решение: { setlocale (LC_ALL,...

[C++]В чём ошибка? - C++
Помогите в чём ошибка ??? Вроде и работает а вроде и нет. Например при значениях 4 6 10 работает а уже при значении 4 8 10 краш. или...

В чём ошибка? - C++
Доброго времени суток! Есть задачка, есть кривое решение. :) Суть задачки такова: найти все простые числа до 1000 и вывести их на...

В чём ошибка? - C++
#include &lt;iostream&gt; using namespace std; int main() { int N, i; cin &gt;&gt; N; int *arr = new int; for(int i = 0; i&lt;N;...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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