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

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

Восстановить пароль Регистрация
 
Almost29
 Аватар для Almost29
9 / 9 / 1
Регистрация: 28.03.2013
Сообщений: 82
18.10.2013, 16:54     Наследование #1
Здравствуйте.

Есть класс 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 секунд
Вроде как сказали, что переменных у Куба не должно быть. А может и должны.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 16:54     Наследование
Посмотрите здесь:

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

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

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

Добавлено через 5 минут
Спасибо, я глуп как пень.
Yandex
Объявления
18.10.2013, 17:22     Наследование
Ответ Создать тему
Опции темы

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