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

Работа с классами, компилятор выдаёт ошибку - C++

Восстановить пароль Регистрация
 
Leonman
 Аватар для Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
11.09.2013, 22:19     Работа с классами, компилятор выдаёт ошибку #1
Дан следующий базовый класс:

class area_cl { public:

double height; double width;

};

создайте два производных класса rectangle и isosceles, которые наследуют базовый класс агеа_с1. Каждый класс должен включать в себя функцию агеа(), которая возвращает площадь соответственно прямоугольника (rectangle) и равнобедренного треугольника (isosceles). Для инициализации переменных height и width (высота и длина основания, соответственно) используйте конструктор с параметрами.

Мой код:
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
#include <iostream>
using namespace std;
 
class area_cl
{
public:
    double height;
    double width;
};
 
class rectangle: public area_cl
{
public:
    rectangle(double h, double w);
    double area();
};
 
class isosceles: public area_cl
{
public:
    isosceles(double h, double w);
    double area();
};
 
rectangle::rectangle(double h, double w)
{
    height = h;
    width = w;
}
 
isosceles::isosceles(double h, double w)
{
    height = h;
    width = w;
}
 
double rectangle::area()
{
    return height * width;
}
 
double isosceles::area()
{
    return 0.5 * height * width;
}
 
int main()
{
    double he, wi;
    cout << "Heigth for rectangle: ";
    cin >> he;
    cout << endl;
    cout << "Width for rectangle: ";
    cin >> wi;
    cout << endl;
    rectangle s(double he, double wi);
    cout << "Heigth for isosceles: ";
    cin >> he;
    cout << endl;
    cout << "Width for isosceles: ";
    cin >> wi;
    cout << endl;
    isosceles S(double he, double wi);
 
    cout << "Square of the rectangle is: " << s.area();
    cout << "Square of the isosceles is: " << S.area();
    return 0;
}
Компилятор выдаёт две ошибки:
error: request for member 'area' in 's', which is of non-class type 'rectangle(double, double)'|
error: request for member 'area' in 'S', which is of non-class type 'isosceles(double, double)'|

Что я сделал неправильно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
11.09.2013, 22:26     Работа с классами, компилятор выдаёт ошибку #2
C++
1
2
rectangle s(double he, double wi);
isosceles S(double he, double wi);
Что это в 57-й и 64-й строках?
Может так:
C++
1
2
rectangle s(he, wi);
isosceles S(he, wi);
?
Leonman
 Аватар для Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
11.09.2013, 22:29  [ТС]     Работа с классами, компилятор выдаёт ошибку #3
castaway, спасибо, теперь всё работает)
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
11.09.2013, 22:31     Работа с классами, компилятор выдаёт ошибку #4
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
#include <iostream>
using namespace std;
 
class area_cl
{
public:
    double height;
    double width;
};
 
class rectangle: public area_cl
{
public:
    rectangle(double h, double w);
    double area();
};
 
class isosceles: public area_cl
{
public:
    isosceles(double h, double w);
    double area();
};
 
rectangle::rectangle(double h, double w)
{
    height = h;
    width = w;
}
 
isosceles::isosceles(double h, double w)
{
    height = h;
    width = w;
}
 
double rectangle::area()
{
    return height * width;
}
 
double isosceles::area()
{
    return 0.5 * height * width;
}
 
int main()
{
    double he, wi;
    cout << "Heigth for rectangle: ";
    cin >> he;
    cout << endl;
    cout << "Width for rectangle: ";
    cin >> wi;
    cout << endl;
    rectangle s(he, wi);
    cout << "Heigth for isosceles: ";
    cin >> he;
    cout << endl;
    cout << "Width for isosceles: ";
    cin >> wi;
    cout << endl;
    isosceles S(he, wi);
 
    cout << "Square of the rectangle is: " << s.area();
    cout << "Square of the isosceles is: " << S.area();
    return 0;
}
Добавлено через 20 секунд
блин, опоздал)
Yandex
Объявления
11.09.2013, 22:31     Работа с классами, компилятор выдаёт ошибку
Ответ Создать тему
Опции темы

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