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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
wwe2012
Заблокирован
#1

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

12.04.2011, 08:33. Просмотров 491. Ответов 2
Метки нет (Все метки)

ак єто можно сделать
Класс одиночного наследования.
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++
Задача по теме: Объекты и классы. &quot;Расширьте содержание класса employee из упражнения 4, включив в него класс date.&quot; Класс...

Базовый класс в иерархии наследования. Вывод свойств объектов - C++
Здрасти. Помогите исправить функцию print_out именно таким образом: void print_out() { void print_out_prop1(); //...

Создать класс с перегруженными функциями и продемонстрировать различные способы наследования - C++
* Задача: создать класс с различными (по типу доступа) членами, перегруженными функциями и продемонстрировать различные способы...

Шаблонный класс: для чего методы объявлены виртуальными, если нет наследования? - C++
Всем добра, для чего virtual T &amp; operator(int i) и virtual T operator(int i) const объявлены как виртуал(ведь наследования нету), как...

Чем отличаются структуры для наследования интерфейса от структур для наследования реализаций? - C++
Дорогие программисты, во первых, хочу поздравить вас с Наступающим новым Годом! Я к вам обращаюсь с маленькой просьбой. Я никак не могу...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
slice
35 / 78 / 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();
}
и последний вопрос как эти части программы соединить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2011, 09:31
Привет! Вот еще темы с ответами:

Наследования - C++
Что именно наследует класс-потомок при наследовании? А что не наследует? Чем отличаются private, public и protected наследование?

Наследования - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class student { protected: int sem; string name; float...

наследования - C++
Приведите пожалуйста пару примеров наследования.

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru