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

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

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

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

11.09.2013, 22:19. Просмотров 394. Ответов 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++ и не могу понять в чём ошибка написал вот такой код: #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; ...

Компилятор выдаёт ошибку, в чем дело?? - C++
Задание: 1. Определить иерархию классов (в соответствии с вариантом). Базовый класс должен включать обязательный атрибут char *name. 2....

Компилятор выдаёт ошибку: неразрешенный вид '_main - C++
#include &lt;vcl.h&gt; #include &lt;iostream.h&gt; using namespace std; class CClass { protected: double a; int b; public: ...

компилятор во всех задачах постоянно выдаёт одну и ту же ошибку. Что делать? - C++
компилятор во всех задачах постоянно выдаёт одну и ту же ошибку (даже если задача решена правильно). Что делать? Deleting intermediate...

Не могу запустить программку компилятор выдаёт ошибку error LNK2019: ссылка на неразрешенный внешний символ - C++
Прошу прощения за глупые вопросы но я новичок в програмировании .Вот моя программка и копия ошибки которую выдаёт компилятор если кто...

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так? - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; long Fact(short m)// функция вычисления факториала ...

При подсчёте косинуса компилятор выдаёт неверное значение - C++
И снова здравствуйте,возникла очередная проблема в моей программе,при элементарном подсчёте косинуса компилятор выдаёт неверное...

Выдаёт ошибку - C++
Данный код работает - считывает кс-грамматику из файла, если файл input.txt содержит S aAB E A aA bB B ACb b C A bA cC Если же...

Выдаёт ошибку... - C++
Строчка 32. #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; using namespace std; bool prime(int...

Выдаёт ошибку - C++
Разбираю примеры простеньких задачек в самоучителе по С++. При введение листинга одной из таких программ в компилятор столкнулась с ошибкой...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 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
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
11.09.2013, 22:29  [ТС]     Работа с классами, компилятор выдаёт ошибку #3
castaway, спасибо, теперь всё работает)
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     Работа с классами, компилятор выдаёт ошибку
Ответ Создать тему
Опции темы

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