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

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

Войти
Регистрация
Восстановить пароль
 
Almost29
9 / 9 / 1
Регистрация: 28.03.2013
Сообщений: 82
#1

Наследование - C++

18.10.2013, 16:54. Просмотров 222. Ответов 2
Метки нет (Все метки)

Здравствуйте.

Есть класс Shape3D, у которой два виртуальных метода (площадь и объем).
Есть наследник параллилепипед, у которого есть 3 стороны, и так же два метода.
И есть предок у него же Куб. Как сделать правильными его методы?

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
class Shape3D {
public:
    virtual double S() = 0;
    virtual double V() = 0;
};
 
class Parral : public Shape3D {
private:
    double a,b,c;
public:
    Parral(double, double, double);
    double S();
    double V();
};
 
class Cub : public Parral {
public:
    Cub(double);
    double S();
    double V();
};  
 
//Конструкторы
Parral::Parral(double x, double y, double z) {
    a = x;
    b = y;
    c = z;
}
 
Cub::Cub(double x) : Parral(x, x, x) {
}
 
//Вычисление площади и объема
double Parral::S() {
    return 2*(a*b + b*c + a*c);
}
double Cub::S() {  // Как сделать чтобы работала
    return Parral::Parral.S();
}
 
double Parral::V() {
    return a*b*c;
}
double Cub::V() {  // Как сделать чтобы работала
    return Parral::Parral.V();
}
Добавлено через 38 секунд
Вроде как сказали, что переменных у Куба не должно быть. А может и должны.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 16:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование (C++):

Заменить наследование классов на наследование интерфейсов - C++
#include <iostream> #include <assert.h> using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование - C++
char* Texts :: SetBit() { char a; int b; cout << "Получаем битовую строку" << endl; cin >> a; b = strlen(a);...

наследование - C++
Пытаюсь разобраться в наследовании Есть класс class File { public: struct comp { char num; // Имя переменной char st;...

Наследование - C++
Всем привет. Может кто нибудь подсказать с чего начать при создании класса для работы с файлами на подобии ostream( а точнее как правильно...

наследование - C++
определить базовый класс ''точка''. Затем от него определить два произвольных класса ''прямоугольник'' и ''параллелепипед'', в каждом из...

Наследование?! - C++
привет всем. Есть класс Circle c1, c2, c3 Нужно реализовать через наследование класс множество, прошу помочь как он будет выглядеть...

2
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
18.10.2013, 17:12 #2
а зачем ты в классе Cub еще раз переопределяешь методы S() и V()? ведь они унаследуются из класса Parral. разве детали реализации этих методов сильно отличаются от класса Parral? куб это же тот же параллелепипед только с равными измерениями.
1
Almost29
9 / 9 / 1
Регистрация: 28.03.2013
Сообщений: 82
18.10.2013, 17:22  [ТС] #3
Вот поэтому и спрашиваю, потому что не очень понимаю. То есть у куба нужно делать только конструктор?*

Добавлено через 5 минут
Спасибо, я глуп как пень.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2013, 17:22
Привет! Вот еще темы с ответами:

наследование - C++
Как наследовать классы с использованием виртуальных функций? Можете привести пример?

наследование в С++ - C++
Добрый вечер. относительно недавно мною была получена задача, а точнее несколько задач в одной...И как это ни печально звучит, проблемы...

наследование - C++
помогите пожалуйсто дописать класс многоугольников , и рисовать на монитор с помощью mfc , заранее благодарен... class figure{ public: ...

Наследование в C++ - C++
Прошу помощи, ибо С++ не моё, а лабораторные работы девушке сдавать надо: Создать 1 базовый класс и несколько производных. Все...


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

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

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