Войти

Показать полную графическую версию : Наследование и иерархия классов


Wwe2012
07-02-2011, 14:12
Контрольные вопросы:
Одиночное и множественное наследование, методы наследования, виртуальная функция, чисто виртуальная функция, абстрактный класс, виртуальное наследование, неоднозначность имен при наследовании.

Задание: Создать и протестировать следующие классы

1. Абстрактный класс.
Создать абстрактный класс Container, в котором определить чисто виртуальные функции для добавления, удаления и определения количества элементов в контейнере.

2. Класс одиночного наследования.
a) Модифицировать класс динамической структуры данных,содержащей строки (л.р. №2), чтобы он был производным от класса Container.
б) Создать 2 различных класса, производные от класса динамической структуры, позволяющие сортировать и фильтровать выходные данные. Для этого вводятся виртуальные функции, соответственно, для сортировки – функция для сравнения 2 строк, для фильтрации – предикат, определяющий, будет ли строка присутствовать в выборке фильтра.

3. Класс множественного наследования.
Создать класс, осуществляющий одновременно сортировку и фильтрацию.

Варианты заданий:

Сортировка
по возрастанию строк

Фильтр

1. четные целые числа, содержащиеся в строке

помагите пожалуйста очень надо. я бы сам может быть чтото сделал но у меня сечас на работе полный завал выручайте мне через 4дня надо это сдать очень надо буду плагодарен

Delirium
07-02-2011, 14:21
Wwe2012, увы, это не форум фрилансеров. Можем помочь советом или в разборе предложенного кода.

Wwe2012
07-02-2011, 15:06
Delirium чесно я воше непойму с чего начать сдесь. я воше не понял смысл задания. растолкуйте если не сложно просто мне это надо сдать через4 дня на работе завал. просто не когда. если не сложно можети сделать очень надо

Delirium
08-02-2011, 01:15
растолкуйте если не сложно »
Wwe2012, ты хочешь за 4 дня изучить фундаментальные основы C++?
на работе завал »
Мы тоже не школьники, все работаем.

чесно я воше непойму »
можети »
А я вот не пойму вот этих слов. Учимся писать и думать по русски.

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

Wwe2012
08-02-2011, 14:30
Вот Ззадание сделал проверти код программы
#include <iostream.h>
#include <conio>

class test
{
protected:
enum {size=256};
char* mas[size];
int I;
public:
test(){I=0;}
void add(char* c)
{
mas[I++]=c;
}
};


class sort: public test
{
private:
char* temp;
char** Ptr;
public:
sort() {Ptr = mas;}
void dis();
};

void sort::dis()
{
char* temp;
char var;

//////////////////////////////////////
cout << "Nesortirovanniy massiv:\n";
for(int j=0; j<I; j++)
cout << Ptr[j] << endl;
//////////////////////////////////////

for(int i=0; i<I; i++)
{
for(int u=0; u<I-1; u++)
{

if(strlen(Ptr[u]) > strlen(Ptr[u+1]))
{
temp = Ptr[u];
Ptr[u] = Ptr[u+1];
Ptr[u+1] = temp;
}
}
int v1=strlen(Ptr[i]);

for(int t=0; t<v1; t++)
{
for(int k=0; k<v1; k++)
{
if((Ptr[i][k]-'0')%2==0)
{
var = Ptr[i][k];
Ptr[i][k] = Ptr[i][t];
Ptr[i][t] = var;
}
}
}
}

////////////////////////////////////////
cout << "\n\nSortirovanniy massim:\n";
for(int j=0; j<I; j++)
cout << Ptr[j] << endl;
////////////////////////////////////////

cout << "\n\nTolko chetniye:\n";
for(int j=0; j<I; j++)
{
for(int i=0; i<strlen(Ptr[j]); i++)
{
if((Ptr[j][i]-'0')%2==0)
cout << Ptr[j][i];
}
cout << endl;
}

}




void main()
{
sort t;

//ввод данных
t.add("123");
t.add("12345");
t.add("123456");
t.add("32454634534");
t.add("9867561");
t.add("9876342");

//вывод на дисплей
t.dis();
getch();
}




© OSzone.net 2001-2012