Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

11.09.2013, 22:19. Просмотров 431. Ответов 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)'|

Что я сделал неправильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2013, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с классами, компилятор выдаёт ошибку (C++):

Компилятор выдаёт ошибку - 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 C4996: 'strcpy': This function or variable may be unsafe - C++
Добрый день! Помогите , пожалуйста, узнать в чём проблема. Код взят из книги. Мне он не очень нравится, были мысли что где-то есть...

определения минимального элемента и его индекса в одномерном массиве(компилятор выдаёт ошибку) - C++
#include &lt;iostream&gt; using namespace std; int main() {int count,min,num; cout&lt;&lt;&quot;count (N): &quot;; cin&gt;&gt;count; int *a; ...

3
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 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);
?
1
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 270
11.09.2013, 22:29  [ТС] #3
castaway, спасибо, теперь всё работает)
0
coloc
погромист
411 / 247 / 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 секунд
блин, опоздал)
1
11.09.2013, 22:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2013, 22:31
Привет! Вот еще темы с ответами:

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

Компилятор выдаёт ошибку error C2059: syntax error : '}' - C++
Компилятор visual studio 2010 выдаёт ошибку error C2059: syntax error : '}' в строке 91. Самая последняя строка #include &lt;iostream&gt; ...

Компилятор выдаёт ошибку: error C2011: Confection::Date: переопределение типа "struct". Как исправить? - C++
#pragma once #pragma warning #ifndef Confection_H #define Confection_H #include &lt;string&gt; #include &quot;Filling.h&quot; using namespace...

выдаёт ошибку в составленной программе выдаёт ошибку - C++
Составить программу, которая находит максимальное значение среди элементов линейной таблицы Y, состоящий из N действительных чисел, имеющих...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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