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

Ошибки - C++

Восстановить пароль Регистрация
 
Katerina Seliva
 Аватар для Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
30.04.2011, 21:57     Ошибки #1
Помогите, пожалуйста=)

Задание: Используя класс, который преобразует дюймы в мм, создайте: функцию извлечения, предлагающую пользователю ввести число дюймов. функцию вставки для вывода на экран числа дюймов и мм.
У меня две проблемы: выводит ошибки [ missing function header ] и [ 'operator <<' is ambiguous ]
А также не особо понимаю, какие параметры нужно ввести в тело программы, там где main

Заранее спасибо!


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
#include "stdafx.h"
#include <iostream>
#include <ostream>
#include <fstream>
#include <istream>
 
using namespace std;
 
 
class inches_to_mm
{
double inches;
double mm;
public:
    void set(double in)
    { inches=in;
    mm=in*25.4;
    }
friend ostream & operator <<(ostream & stream, inches_to_mm ob);
friend istream & operator >>(istream & stream, inches_to_mm & ob);
};
 
istream & operator >>(istream & stream, inches_to_mm & ob);
{
cout <<"Vvedite skolko dujm";
stream>> ob.inches;
return stream;
};
 
ostream & operator <<(ostream & stream, inches_to_mm ob);
{
stream <<"Vy vveli"<<ob.inches<<"dujm i"<<ob.mm<<"mm"endl;
return stream;
}
main(void)
{
inches_to_mm inches;
cout << inches;
cin >> inches;
cout << inches;
return 0;
            
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2011, 21:57     Ошибки
Посмотрите здесь:

ошибки в С/С++ C++
C++ ошибки
ошибки C++
С++ ошибки C++
Ошибки VS C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
01.05.2011, 00:11     Ошибки #2
23, 30 строки -- убрать ";" в конце объявления функции
32 строка -- добавить "<<" перед "endl"
35 строка -- заменить "main(void)" на "int main(int argc, char *argv[])"
Katerina Seliva
 Аватар для Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 10:57  [ТС]     Ошибки #3
Спасибо, одна ошибки про header ушла, но пришла другая:
'inches' : cannot access private member declared in class 'inches_to_mm'
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
#include "stdafx.h"
#include <iostream>
#include <ostream>
#include <fstream>
#include <istream>
 
using namespace std;
 
 
class inches_to_mm
{
double inches;
double mm;
public:
    void set(double in)
    { inches=in;
    mm=in*25.4;
    }
friend ostream & operator <<(ostream & stream, inches_to_mm ob);
friend istream & operator >>(istream & stream, inches_to_mm & ob);
};
 
istream & operator >>(istream & stream, inches_to_mm & ob)
{
cout <<"Vvedite skolko dujm";
stream>> ob.inches;
return stream;
};
 
ostream & operator <<(ostream & stream, inches_to_mm ob)
{
stream <<"Vy vveli"<<ob.inches<<"dujm i"<<ob.mm<<"mm"<<endl;
return stream;
}
 
int main(int argc, char *argv[])
{
inches_to_mm inches;
cout << inches;
cin >> inches;
cout << inches;
return 0;
            
}
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
01.05.2011, 11:06     Ошибки #4
Оставьте только iostream в инклудах. И кстати, какая среда программирования?
Katerina Seliva
 Аватар для Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 11:14  [ТС]     Ошибки #5
Убрала, но это ничего не изменило, программирую на Microsoft Visual C++ 6.0
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
01.05.2011, 11:39     Ошибки #6
Тогда уберите fstream и напишите iostream.h
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
01.05.2011, 11:46     Ошибки #7
ValeryLaptev, ой насоветуете сейчас... нету в MSVS iostream.h.


Katerina Seliva, у меня ваш код компилится нормально, разве что варнинг на не инициализированную переменную inches в мейне. Возможно, ваш компилятор путается между inches как переменной и как полем класа inches_to_mm, лучше в мейне переменную назвать по-другому как-то. Ну и инициализировать.
Katerina Seliva
 Аватар для Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 11:49  [ТС]     Ошибки #8
Когда сделала iostream.h, oшибки убрались, запускается программа и появляется вот такое:
Миниатюры
Ошибки  
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
01.05.2011, 12:15     Ошибки #9
Цитата Сообщение от PraZuBeR Посмотреть сообщение
ValeryLaptev, ой насоветуете сейчас... нету в MSVS iostream.h.
Вы не обратили внимания, что у нее VC++6. Это система 1998 года, создавалась еще ДО стандарта. И там старая система ввода-вывода работает гораздо лучше, чем новая.
Я сам похлебал в свое время проблем с этим. Поэтому, пусть iostream.h напишет.

Добавлено через 3 минуты
Цитата Сообщение от Katerina Seliva Посмотреть сообщение
Когда сделала iostream.h, oшибки убрались, запускается программа и появляется вот такое:
Ну, это уже легко.
сначала cin >> inches;
Потом inches.set(inches);
потом cout << inches;
Katerina Seliva
 Аватар для Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 12:42  [ТС]     Ошибки #10
Вот как на данный момент выглядит программа, с учетом всех ошибок

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
#include "stdafx.h"
#include "iostream.h"
 
 
 
 
class dujms_to_mm
{
double inches;
double mm;
public:
    void set(double in)
    { inches=in;
    mm=in*25.4;
    }
friend ostream & operator <<(ostream & stream, dujms_to_mm ob);
friend istream & operator >>(istream & stream, dujms_to_mm & ob);
};
 
istream & operator >>(istream & stream, dujms_to_mm & ob)
{
cout <<"Vvedite skolko dujm: ";
stream>> ob.inches;
return stream;
};
 
ostream & operator <<(ostream & stream, dujms_to_mm ob)
{
stream <<"Vy vveli: "<<ob.inches<<" dujm i "<<ob.mm<<"mm"<<endl;
return stream;
}
 
int main(int argc, char *argv[])
{
dujms_to_mm inches;
cin >> inches;
inches.set(inches);
cout << inches;
      
return 0;
            
}

Ошибка вылезла: 'set' : cannot convert parameter 1 from 'class dujms_to_mm' to 'double'
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
01.05.2011, 13:11     Ошибки #11
Цитата Сообщение от Katerina Seliva Посмотреть сообщение
Вот как на данный момент выглядит программа, с учетом всех ошибок

Ошибка вылезла: 'set' : cannot convert parameter 1 from 'class dujms_to_mm' to 'double'
Вы вводите объект класса dujms_to_mm, а в set - параметр типа double. Надо так:
в классе:
Код
void set()
    {
    mm=inches*25.4;
    }
В main:
Код
dujms_to_mm inches;
cin >> inches;
inches.set();
cout << inches;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2011, 13:40     Ошибки
Еще ссылки по теме:

ошибки C++
С++ ошибки C++
Ошибки C++

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

Или воспользуйтесь поиском по форуму:
Katerina Seliva
 Аватар для Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 13:40  [ТС]     Ошибки #12
Урааа!!! Спасибо, теперь всё работает!
Yandex
Объявления
01.05.2011, 13:40     Ошибки
Ответ Создать тему
Опции темы

Текущее время: 18:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru