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

Класс наследования - C++

Восстановить пароль Регистрация
 
wwe2012
Заблокирован
12.04.2011, 08:33     Класс наследования #1
ак єто можно сделать
Класс одиночного наследования.
a) Модифицировать класс динамической структуры данных,содержащей строки (л.р. №2), чтобы он был производным от класса Container.
б) Создать 2 различных класса, производные от класса динамической структуры, позволяющие сортировать и фильтровать выходные данные. Для этого вводятся виртуальные функции, соответственно, для сортировки – функция для сравнения 2 строк, для фильтрации – предикат, определяющий, будет ли строка присутствовать в выборке фильтра.
вот это я не пойму как сделать. помогите буду очень благодарен.как єто можно сделать
Класс одиночного наследования.
a) Модифицировать класс динамической структуры данных,содержащей строки (л.р. №2), чтобы он был производным от класса Container.
б) Создать 2 различных класса, производные от класса динамической структуры, позволяющие сортировать и фильтровать выходные данные. Для этого вводятся виртуальные функции, соответственно, для сортировки – функция для сравнения 2 строк, для фильтрации – предикат, определяющий, будет ли строка присутствовать в выборке фильтра.
вот это я не пойму как сделать. помогите буду очень благодарен.

вот код программы без 2-го задания:
это виртуальные функции:
Код:



Код:


template<class T>
class T_container
{
public:
virtual ~T_container()
{}

virtual void insert (const T& t) = 0;
virtual void erase (const T& t) = 0;
virtual size_t size () = 0;
};

//задания 2

//3 задние

#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();
}

и порследнией вопрос как обеденить 1и 3 задание.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2011, 08:33     Класс наследования
Посмотрите здесь:

C++ наследования
Реализация наследования C++
Наследования C++
C++ Наследования
чем отличаются структуры для наследования интерфейса, от структур, для наследования реализаций C++
Шаблонный класс: для чего методы объявлены виртуальными, если нет наследования? C++
C++ Создать класс с перегруженными функциями и продемонстрировать различные способы наследования
C++ Базовый класс в иерархии наследования. Вывод свойств объектов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
12.04.2011, 08:45     Класс наследования #2
Ничего не понял. Скорее всего задане криво сформулировано.
wwe2012
Заблокирован
12.04.2011, 09:31  [ТС]     Класс наследования #3
Цитата Сообщение от slice Посмотреть сообщение
Ничего не понял. Скорее всего задане криво сформулировано.
Вот задание цыляком:


привет помаги мне очень надо
помогите до делать контрольную. 1 и 3 я задание сделал а второе не получается времени нету.
вот сами задание:
Задание: Создать и протестировать следующие классы

1. Абстрактный класс.
Создать абстрактный класс Container, в котором определить чисто виртуальные функции для добавления, удаления и определения количества элементов в контейнере.
Вот код к нему:
template<class T>
class T_container
{
public:
virtual ~T_container()
{}

virtual void insert (const T& t) = 0;
virtual void erase (const T& t) = 0;
virtual size_t size () = 0;
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{

}

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

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

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

Сортировка

1. по возрастанию длины строки
2. по убыванию длины строки
3. по возрастанию целого значения, содержащегося в строке
4. по убыванию вещественного значения, содержащегося в строке
5. по возрастанию количества пробелов в строке
6. по убыванию количества цифр в строке
7. по возрастанию строк
8. по убыванию строк

Фильтр

1. четные целые числа, содержащиеся в строке
2. нечетные целые числа, содержащиеся в строке
3. палиндромы
4. вещественные числа, содержащиеся в строке
5. строки четной длины
6. строки, не содержащие пробельные символы
7. строки, содержащие подстроку “ООП”
Вот код программы:
#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:is()
{
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();
}
и последний вопрос как эти части программы соединить
Yandex
Объявления
12.04.2011, 09:31     Класс наследования
Ответ Создать тему
Опции темы

Текущее время: 05:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru