Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2010, 20:57   #1
kemper1990
Пользователь
 
Аватар для kemper1990
 
Регистрация: 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 Yublic X{
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
мот что то с выделением памяти?
заранее спасибо...)
kemper1990 вне форума Ответить с цитированием
Старый 07.11.2010, 00:29   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,821
По умолчанию

Цитата:
и почему пишет замечания компилятор..
Вы их перевиде и посмотрите на свой код
p51x вне форума Ответить с цитированием
Старый 07.11.2010, 19:28   #3
kemper1990
Пользователь
 
Аватар для kemper1990
 
Регистрация: 01.09.2010
Сообщений: 12
По умолчанию

хорошо, спасибо)
kemper1990 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Проблема с виртуальными деструкторами ordoss Помощь студентам 4 14.06.2010 17:17
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00