![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 12
|
![]()
Вот задание :
Программа должна содержать: Базовый класс Х, включающий два элемента х1, х2 типа int, конструктор с параметрами для создания объектов в динамической области памяти, деструктор, виртуальные методы просмотра текущего состояния и переустановки объектов базового класса в новое состояние. Производный класс У, включающий один элемент у типа int , конструктор с параметрами и списком инициализаторов, передающий данные конструктору базового класса, переопределенные методы просмотра текущего состояния объектов и их переустановки в новое состояние. Создать в производном классе метод Run, определяющий: Сумму компонент классов Программа должна продемонстрировать работу конструкторов базового и производного классов, начальное значение задается конструкторами, а переустановка их в новое состояние производится методами классов через косвенную адресацию. Вот Решение : #include <iostream> #include <conio.h> #include <cmath> using namespace std; class X{ int *x1,*x2; public: X(int x,int y){setx1(x);setx2(y);} ~X(){delete x1;delete x2;} virtual int setx1(int x) {x1=new int; if(!x1) return 1; *x1=x;} virtual int setx2(int y){ x2=new int; if(!x2) return 1; *x2=y; } virtual int getx1(){return *x1;} virtual int getx2(){return *x2;} }; class Y ![]() int *y; public: Y(int i,int j,int k):X(i,j){sety(k);} ~Y(){delete y;} virtual int sety(int x){ y=new int; if(!y) return 1; *y=x; } virtual int gety(){cout<<getx1()<<getx2(); return *y;} int run(){return (getx1()*getx2()**y);} }; int main(){ X *f; Y *g; Y ob(1,2,3); X ob1(9,8); f=&ob1; g=&ob; cout<<f->getx1()<<f->getx2()<<endl; cout<<g->gety()<<endl; cout<<g->run()<<endl; f->setx1(4); f->setx2(5); cout<<f->getx1()<<f->getx2()<<endl; g->setx1(11); g->setx2(24); g->sety(36); cout<<g->gety()<<endl; cout<<g->run()<<endl; return 0; } вопрос вот в чём... f->setx1(4); f->setx2(5); это и есть косвенная адресация?? с g объектом тож самое... и почему пишет замечания компилятор... Warning 1 warning C4715: 'X::setx1' : not all control paths return a value d:\курсы с++\z8\z8\z8.cpp 14 Warning 2 warning C4715: 'X::setx2' : not all control paths return a value d:\курсы с++\z8\z8\z8.cpp 20 Warning 3 warning C4715: 'Y::sety' : not all control paths return a value d:\курсы с++\z8\z8\z8.cpp 33 мот что то с выделением памяти? заранее спасибо...) |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,821
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 12
|
![]()
хорошо, спасибо)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C++] Проблема с виртуальными деструкторами | ordoss | Помощь студентам | 4 | 14.06.2010 17:17 |
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. | 0101 | Помощь студентам | 3 | 17.12.2009 23:57 |
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме | NewDelphi | Фриланс | 2 | 08.10.2009 11:00 |