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

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

Войти
Регистрация
Восстановить пароль
 
Leonman
 Аватар для Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
#1

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

11.09.2013, 22:19. Просмотров 366. Ответов 3
Метки нет (Все метки)

Дан следующий базовый класс:

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)'|

Что я сделал неправильно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2013, 22:19     Работа с классами, компилятор выдаёт ошибку
Посмотрите здесь:

C++ выдаёт ошибку в составленной программе выдаёт ошибку
Компилятор выдаёт ошибку, в чем дело?? C++
При подсчёте косинуса компилятор выдаёт неверное значение C++
C++ определения минимального элемента и его индекса в одномерном массиве(компилятор выдаёт ошибку)
компилятор во всех задачах постоянно выдаёт одну и ту же ошибку. Что делать? C++
C++ Компилятор выдаёт ошибку
C++ При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так?
C++ Не могу запустить программку компилятор выдаёт ошибку error LNK2019: ссылка на неразрешенный внешний символ
Компилятор выдаёт ошибку: неразрешенный вид '_main C++
Почему компилятор выдаёт ошибки? C++
Компилятор выдаёт ошибку error C4996: 'strcpy': This function or variable may be unsafe C++
C++ Компилятор выдаёт ошибку: error C2011: Confection::Date: переопределение типа "struct". Как исправить?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 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     Работа с классами, компилятор выдаёт ошибку
Ответ Создать тему
Опции темы

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