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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
#1

НАСЛЕДОВАНИЕ - C++

21.11.2009, 16:27. Просмотров 1300. Ответов 20
Метки нет (Все метки)

Привет!

Есть у меня одна задачка из лабораторной работы. Дело в том что на лекцие я не был по этой теме(Наследование), и потому прошу вашей помощи.

Условия задачи:

Создать класс ТОЧКА ,которая имеет координаты .Класс ЕЛИПС и КРУГ. Определить иерархию типов. Определить функцию вывода на экран, площу елипса и круга, конструктор, деструктор!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2009, 16:27     НАСЛЕДОВАНИЕ
Посмотрите здесь:

C++ Наследование
Наследование в С++ C++
C++ Наследование
наследование C++
C++ Наследование
C++ Наследование
C++ Наследование
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
21.11.2009, 16:36     НАСЛЕДОВАНИЕ #2
Цитата Сообщение от lolopolosko Посмотреть сообщение
на лекцие я не был по этой теме(Наследование)
значит был на теме классы. Напиши для начала полностью классы точка, еллипс и круг. А мы уже поможем с наследованием. Главное понять что это нужно не нам, а тебе
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 16:58  [ТС]     НАСЛЕДОВАНИЕ #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
class tochka
{
int a,b;
public:
tochka(int _a,int _b){a = _a; b = _b}
~tochka(); void show();
};
 
class elips
{
int x,y;
public:
elips(int _x,int _y){x = _x; y= _y}
~elips(); //в условии есть что нужно деструктор(плохо понимаю деструкторы)
void show(); //вывод сообщения....траляля 
void plowa();//площа для елипса
};
 
class kryg
{
int r;
public:
kryg(int _r){r = _r;}
~kryg(); void show();
void plowa();//площа для круга
Добавлено через 11 минут
фигурные скобки забыл поставить в деструкторах
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
21.11.2009, 16:59     НАСЛЕДОВАНИЕ #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
class tochka
{
    int a,b;
public:
    tochka(){a = 0; b = 0;}
    tochka(int _a,int _b){a = _a; b = _b;}
    ~tochka(){a= 0; b = 0;}
    void show();
};
 
class elips : public tochka
{
    int x,y;
public:
    elips(){x = 0; y = 0;}
    elips(int _x,int _y){x = _x; y= _y;}
    ~elips(){x = 0; y = 0;}; //в условии есть что нужно деструктор(плохо понимаю деструкторы)
    void show(); //вывод сообщения....траляля 
    void plowa();//площа для елипса
};
 
class kryg : public elips
{
    int r;
public:
    kryg(int _r){r = _r;}
    ~kryg(){r = 0;}
    void show();
    void plowa();//площа для круга
};
, будем считать что тела функций для площади и вывода напишешь сам
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 17:15  [ТС]     НАСЛЕДОВАНИЕ #5
пасиб ща попробую

Добавлено через 12 минут
один вопрос....А можно ли использовать один обьект для 3 класов???
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
21.11.2009, 17:31     НАСЛЕДОВАНИЕ #6
Цитата Сообщение от lolopolosko Посмотреть сообщение
один вопрос....А можно ли использовать один обьект для 3 класов???
если так тересует попробуй это
C++
1
2
3
char a[256];
int a=0;
cout<<a;
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 17:36  [ТС]     НАСЛЕДОВАНИЕ #7
Цитата Сообщение от МедведЪ Посмотреть сообщение
если так тересует попробуй это
C++
1
2
3
char a[256];
int a=0;
cout<<a;
ахаха)))и что это такое)))))и чар и инт...
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
21.11.2009, 17:50     НАСЛЕДОВАНИЕ #8
Цитата Сообщение от lolopolosko Посмотреть сообщение
ахаха)))и что это такое)))))и чар и инт...
ты в книге читал?
объявление объекта класса=int i;
int это типа класс а i объект
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 17:56  [ТС]     НАСЛЕДОВАНИЕ #9
ты когда небуть применял это на практике?
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
21.11.2009, 17:58     НАСЛЕДОВАНИЕ #10
что это?
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 18:00  [ТС]     НАСЛЕДОВАНИЕ #11
C++
1
2
3
char a[256];
int a=0;
cout<<a;
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
21.11.2009, 18:03     НАСЛЕДОВАНИЕ #12
именно это нет,поскольку я знаю что создать переменные с одним именем не то
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 18:08  [ТС]     НАСЛЕДОВАНИЕ #13
)вот и я про это...
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
21.11.2009, 18:11     НАСЛЕДОВАНИЕ #14
Цитата Сообщение от lolopolosko Посмотреть сообщение
)вот и я про это...
значит сам получил ответ)
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 18:15  [ТС]     НАСЛЕДОВАНИЕ #15
просто когда ты написал "попробуй это
C++
1
2
3
char a[256];
int a=0;
cout<<a;
" то я удивился....
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
21.11.2009, 18:23     НАСЛЕДОВАНИЕ #16
lolopolosko, я уже сказал-объявление переменных=объявлению объектов,а про объявление переменных ты знаешь
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
21.11.2009, 19:11     НАСЛЕДОВАНИЕ #17
Цитата Сообщение от lolopolosko Посмотреть сообщение
А можно ли использовать один обьект для 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
#include <iostream>
class tochka
{
public:
    virtual void print(){std::cout<<"tochka"<<std::endl;}
};
class elips : public tochka
{
public:
    void print(){std::cout<<"elips"<<std::endl;}
};
class kryg : public elips
{
public:
    void print(){std::cout<<"kryg"<<std::endl;}
};
int main()
{
    tochka* tck = new tochka();
    tck->print();
    tck = new kryg();
    tck->print();
    tck = new elips();
    tck->print();
    system("pause");
    return 0;
}
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 23:37  [ТС]     НАСЛЕДОВАНИЕ #18
Пасиб
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
22.11.2009, 00:26     НАСЛЕДОВАНИЕ #19
Цитата Сообщение от M128K145 Посмотреть сообщение
Да, можно, но при условии, что объект имеет тип базового класса.
Скомпилируйте код
В таких случаях следует делать деструктор базового класса виртуальным, да и память не мешало бы освобождать чтобы новичков в заблуждение не вводить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2009, 00:30     НАСЛЕДОВАНИЕ
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
22.11.2009, 00:30     НАСЛЕДОВАНИЕ #20
rangerx, суть этой программы в другом
Yandex
Объявления
22.11.2009, 00:30     НАСЛЕДОВАНИЕ
Ответ Создать тему
Опции темы

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