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

Классы С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.84
Z3pp3l1n
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 3
14.10.2011, 18:09     Классы С++ #1
Добрый вечер форумчане =)
Помогите с классами.
Есть такая задача: Написать класс, который будет переводить рост человека из дюймов в футы (но я выбрал из сантиметров в миллиметры).
Вот код:
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
#include <iostream.h>
#include <conio.h>
#include <tchar.h>
 
class Human {
    public:
    Human();
    int x, z;
    int calculate(int x, int z);
};
 
int Human::calculate(int x, int z)
{
    x * 10 == z;
    return z;
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    Human height;
    cout << "Height in sm - " << endl;
    cin >> height.x;
    height.calculate(int x, int z);
    cout << "Height in mm - " << endl;
    cin >> height.z >> endl;
    getch();
 
}
Выдает ошибки на 25 и 27 строке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2011, 18:09     Классы С++
Посмотрите здесь:

C++ Классы
Классы C++
C++ КЛАССЫ
C++ Классы
классы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mut
5 / 5 / 0
Регистрация: 12.10.2011
Сообщений: 46
14.10.2011, 18:12     Классы С++ #2
какие ошибки?

Добавлено через 1 минуту
судя по коду нужно исправить #include <iostream>
добавить using namespace std; перед классом
Z3pp3l1n
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 3
14.10.2011, 18:16  [ТС]     Классы С++ #3
Ошибки:
[BCC32 Error] 321.cpp(30): E2188 Expression syntax Full parser context 321.cpp(26): parsing: int main(int,char * *) - для строки 25

[BCC32 Error] 321.cpp(32): E2335 Overloaded 'endl' ambiguous in this context Full parser context 321.cpp(26): parsing: int main(int,char * *) - для строки 27
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
14.10.2011, 18:17     Классы С++ #4
Цитата Сообщение от Z3pp3l1n Посмотреть сообщение
cin >> height.z >> endl;
endl не нужен.

Цитата Сообщение от Z3pp3l1n Посмотреть сообщение
height.calculate(int x, int z);
Здесь Вы как-то необыкновенно объявляете переменные. Так нельзя. Нужно до вызова объявить. И в добавок не определяете. Т.е. функции даются неопределенные значения переменных.

Не забудьте определить конструктор.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
14.10.2011, 18:18     Классы С++ #5
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
#include <iostream>
#include <conio.h>
#include <tchar.h>
 
class Human {
        public:
        int x, z;
        int calculate(int x);
};
 
int Human::calculate(int x)
{
        return x*10;
}
 
 
int main()
{
        Human height;
        std::cout << "Height in sm - " << std::endl;
        std::cin >> height.x;
        height.z = height.calculate(height.x);
        std::cout << "Height in mm - " << std::endl;
        std::cout << height.z << std::endl;
        system ("pause");
}
Добавлено через 16 секунд
рабочая версия
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
14.10.2011, 18:18     Классы С++ #6
Цитата Сообщение от Mut Посмотреть сообщение
судя по коду нужно исправить #include <iostream>
добавить using namespace std; перед классом
В старых компиляторах делать такое не нужно.
Z3pp3l1n
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 3
14.10.2011, 18:22  [ТС]     Классы С++ #7
Благодарю за решение проблемы =)
совсем не давно начал изучать, и довольно тяжела для понимая тема классов.
Что такое std?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
14.10.2011, 18:25     Классы С++ #8
std - это пространство имен, его пишут когда применяют функции стандартной библиотеки. Если не хотите везде писать std:: напишите после include
C++
1
using namespace std;
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
14.10.2011, 19:06     Классы С++ #9
Dani, а самому можно так сделать чтоб ты сам написал функцию а потом так её вызывал ну например
MYFUN::function
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
14.10.2011, 19:11     Классы С++ #10
Цитата Сообщение от Van111 Посмотреть сообщение
Dani, а самому можно так сделать чтоб ты сам написал функцию а потом так её вызывал ну например
MYFUN::function
да это называется namespace его добавить надо

Добавлено через 1 минуту
пример:
C++
1
2
3
4
5
namespace TextLib {
class Text { /*...*/};
class Glyph {/*...*/};
class Line{/*...*/};
}
передрал из книги Страуструпа =)
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
14.10.2011, 19:16     Классы С++ #11
Dani,
а вот например что значит << в этом случае
cout << x;
<<(это же сдвиг на некоторое количество байтов)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2011, 19:18     Классы С++
Еще ссылки по теме:

Классы C++
Классы в С++ C++
C++ Классы в c++

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

Или воспользуйтесь поиском по форуму:
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
14.10.2011, 19:18     Классы С++ #12
это значит "поток вывода" и его можно перегружать. Он используется с выводом куда-нить (на драйвера вроде, а они пересылают данные в устройство на прямую)
например вывод в файл
C++
1
2
std:: ofstream ofs ("output.txt");
ofs << 123 << "\n";
Yandex
Объявления
14.10.2011, 19:18     Классы С++
Ответ Создать тему
Опции темы

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