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

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

Войти
Регистрация
Восстановить пароль
 
Electroflower
Форумчанка
290 / 83 / 9
Регистрация: 05.01.2012
Сообщений: 432
Записей в блоге: 1
#1

Механизм замещения - C++

21.05.2013, 10:21. Просмотров 319. Ответов 2
Метки нет (Все метки)

Привет ребят! Пишу наследование. Есть базовый абстрактный класс и два производных. Написала всего одну функцию print и не получается реализовать замещение для нее
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
class osv_prib
{
public:
       virtual void print(TMemo*M)=0;
       virtual ~osv_prib(){};
protected:
       int cena;//öåГ*Г*
       AnsiString imya;//èìÿ
       int   CCBETA;//Г±ГЁГ«Г* Г±ГўГҐГІГ*
};
 
void osv_prib::print(TMemo* M){
M->Lines->Add("Осветительные приборы");
M->Lines->Add("Название: "+imya);
M->Lines->Add("Цена: "+IntToStr(cena)+ "  руб.");
M->Lines->Add("Сила света: "+IntToStr(CCBETA)+ "  кд");
M->Lines->Add("___________________________");
}
 
 
 //---- ГЄГ«Г*Г±Г± "ÑâåòèëüГ*ГЁГЄГЁ"----//
class svetilniki: public virtual osv_prib
{public:
        virtual void print (TMemo*M);
        virtual ~svetilniki(){};
        svetilniki(){};
        svetilniki(int cena1, AnsiString imya1, int CCBETA1,int dalnost);
protected:
        int dalnost;
};
 
svetilniki::svetilniki(int cena1, AnsiString imya1, int CCBETA1,int dalnost1)
{
cena=cena1;
imya=imya1;
CCBETA=CCBETA1;
dalnost=dalnost1;
}
 
void svetilniki::print(TMemo*M){
M->Lines->Add("Г‘Светильники");
M->Lines->Add("Дальность: "+ IntToStr(dalnost) +"  метров");
M->Lines->Add("___________________________");
}
 
 //----ГЄГ«Г*Г±Г±"Ïðîæåêòîðû"----//
class proj: public virtual osv_prib {
public:
        virtual void print(TMemo*M);
        virtual ~proj(){};
        proj();
        proj(int cena1 ,AnsiString imya1,int   CCBETA1, int ploshad);
protected:
        int ploshad;
};
proj::proj(){};
proj::proj(int cena1 ,AnsiString imya1,int   CCBETA1, int ploshad1)
{
cena=cena1;
imya=imya1;
CCBETA=CCBETA1;
ploshad=ploshad1;
}
void proj::print(TMemo*M){
M->Lines->Add("Прожекторы");
M->Lines->Add("Прожекторы: "+ IntToStr(ploshad)+"  метров кв.");
M->Lines->Add("___________________________");
}
 
 
 
 
 
 
 
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
svetilniki s(3000,"Торшер",100,6);
s.print(Memo1);
proj pj(150000,"Производственный",600,20);
pj.print(Memo1);
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        osv_prib  *ps;
        svetilniki gs(3000,"Торшер",100,6),*pgs;
 
  pgs->print(Memo2); //svetilniki::print
  // osv_prib::print
 
}
//---------------------------------------------------------------------------
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 10:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Механизм замещения (C++):

Реализация механизма замещения страниц в ОП - C++
Необходимо реализовать модель «реализация механизма замещения страниц в ОП». Существует список из N активных страниц (по желанию можно...

Алгоритмы замещения страниц(STL, вторая попытка) - C++
Помогите пожалуйста найти ошибку в алгоритме, вроде все правильно работает, но иногда при разных входных данных возникает ошибка. Так...

Помогите разобраться (STL, алгоритмы замещения страниц) - C++
Здравствуйте, хочу реализовать алгоритм замещения страниц памяти FIFO. Не знаю как организовать проверку на присутствие страницы в...

Алгоритм замещения страниц LRU с помощью методов библиотеки STL - C++
Здравствуйте! Мне нужно реализовать алгоритм замещения страниц LRU с помощью методов библиотеки STL. Подскажите пожалуйста, как это сделать...

Механизм перегрузки - C++
Здравствуйте, помогите решить задачу. С помощью механизма перегрузки функций организовать сложение: а) числа с самим собой (один...

Механизм перегрузки - C++
Ребят помогите. Нужно создать две версии функции, используя механимз перегрузки, заголовки у которых должны быть такими: №1 float F(float...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
21.05.2013, 10:33 #2
Должно быть примерно так:
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        osv_prib  *ps;// указатель на базовый класс
        svetilniki gs(3000,"Торшер",100,6);
        ps=&gs;     // указатель инициализируем адресом производного класса
        ps->print(Memo2); // срабатывает виртуальный механизм
}
0
Electroflower
Форумчанка
290 / 83 / 9
Регистрация: 05.01.2012
Сообщений: 432
Записей в блоге: 1
21.05.2013, 10:56  [ТС] #3
zss, вот так тоже пробовала, он принтит только то что относится к светильникам, т.е. дальность, не могу понять почему...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 10:56
Привет! Вот еще темы с ответами:

механизм наследования - C++
Есть такой код: #include <iostream> using namespace std; class base { protected: int i, j; // private to base, but...

механизм присваивания в С++ - C++
Доброго времени суток всем. Объясните почему при присвоении создается копия присваиваемого объекта. Cat Frisky(1,2); Cat...

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

Конструкторы и механизм return - C++
#include <iostream> using namespace std; struct M { M() { cout << "1\n"; } M(const M&) { cout << "2\n"; } M&...


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

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

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