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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2016, 22:31   #1
PS_2
Новичок
Джуниор
 
Регистрация: 19.12.2016
Сообщений: 1
По умолчанию Матрица из указателей на абстрактный класс!!

Есть задача:Космос - пространство(матрица) населенное кораблями пришельцев.Корабль может быть помещен в пространство и удален.Если корабль попал в занятую уже кем то клетку,то заменяет его,если у него больше горючего. Есть 2 типа корабля, разные по сигналу и форме.Считать абстрактным классом -класс космический объект с чистыми виртуальными функциями-"сигнал" и "показать корабль", сделать матрицу 5*5 из указателей на абстрактный класс..

В методах Put и Del у меня не распознаются методы абстрактного класса и также не хочет выводиться сама матрица((

Скажите пожалуйста,уважаемые программисты, что я делаю не так и как поставить видимость??
Вот мой код:

Цитата:
class Korabli{
protected:int Gur;
public:
void SetGur(int x);
int GetGur(void);
virtual void Signal()=0;
virtual void printf()=0;
};

void Korabli::SetGur(int x){Gur=x;}
int Korabli::GetGur(void){return Gur;}

class Object1ublic Korabli{
public:void Signal(){cout<<"--";};
void printf(){cout<<"P";};
};

class Object2ublic Korabli{
public: void Signal(){cout<<"++*";};
void printf(){cout<<"Y";};
};

class Kosmos{
private:Kosmos**M;unsigned int size;int i,j;
public:
Kosmos();
void Put(Korabli *x);
void Del(void);
void show();

};

Kosmos::Kosmos(){
Korabli **M = new Korabli*[5];//5 строк в массиве
for (int i=0; i<5; i++)
{M[i] = new Object1[5]; M[i] = new Object2[5];}//M[i] = new Animal[5];
for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
{M[i][j].SetGur(1);};
};

void Kosmos::Put(Korabli *x){
for (int i=0; i<5; i++)
{for (int j=0; j<5; j++)
if (M[i][j].SetGur(x)<M[i][j].Put(x)){M[i][j].SetGur()=M[i][j].Put(x);};
};
};

void Kosmos::Show(void){

for ( int i=0; i<5; i++)
{for ( int j=0; j<5; j++)
{cout<<M[i][j]->GetGur();cout<<endl;};
};
};

int main(){
Object1 A;
Object2 C;
A.SetGur(4);C.SetGur(2);
A.Signal();
Kosmos z;
z.Show();
system("pause");
return 0;
}
скажите что не так я делаю?
PS_2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вектор указателей на абстрактный базовый класс Cutlet Помощь студентам 14 31.05.2013 21:30
Сортировка массива указателей на абстрактный базовый класс Frants Общие вопросы C/C++ 11 29.11.2012 19:44
Абстрактный класс Сырги C# (си шарп) 3 22.11.2012 01:13
абстрактный класс meta13 C# (си шарп) 2 22.03.2012 19:14
c# абстрактный класс tanek Помощь студентам 1 22.02.2012 11:23