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

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

Войти
Регистрация
Восстановить пароль
 
LordLKO
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 4
#1

Наследование классов и заголовочные файлы - C++

08.07.2015, 04:16. Просмотров 254. Ответов 1
Метки нет (Все метки)

Здравствуйте!
Необходимо реализовать алгоритм сортировки выбором через базовый заголовочный класс Sorted, производный класс Selectionsorted и тело цикла. Sorted и Selectionsorted должны быть в виде заголовочных файлов. Попытался что - то сделать, пожалуйста, помогите исправить ошибки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//Csorted.h
#pragma once
class CSorter
{
    protected:
    template<typename T>
void swap(T& first, T& second)
    {
        std::swap(first, second);
    }
public:
    virtual void sort() = 0;
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//CSelectionsorted.h
#include "Csorted.h"
 
template<typename TElement>
class CSelectionsorted: public CSorter
{
private:
const size_t count;
TElement *container;
public:
template<size_t N>
CSelectionsorted(TElement (&container)[N]): count(N), container(container)
{}
virtual void sort()
{
 for (std::size_t i = 0; i < size - 1; i++)
    {
        std::size_t min_i = i;
        for (std::size_t j = i + 1; j < size; j++)
        {
            if (container[j] < container[min_i])
            {
                min_i = j;
            }
        }
 
        if (min_i != i)
        {
            std::swap(container[i], container[min_i]);
        }
    }
}
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//int main
#include "CSelectionsorted.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
int main ()
{
    int mas[] = {3,2};
    CSorted &bs = CSelectionsorted <int> (mas);
    bs.sort();
    cout << mas[0] << " " << mas[1];
    _getch();
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2015, 04:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование классов и заголовочные файлы (C++):

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними - C++
Всем добрый вечер!) Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как появился вопрос. Почему при объявлении...

Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы? - C++
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про графику, не смог добавить файлы .h и .cpp, скачав их с одной из...

Заменить наследование классов на наследование интерфейсов - C++
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Заголовочные файлы - C++
#ifndef _MYCLASS_H #define _MYCLASS_H class myclass{//Описание класса}; #endif Сказано, что заголовочные файлы обычно включают...

Заголовочные файлы (.h) - C++
Доброго времени суток господа! Озадачился вопросом по поводу заголовочных файлов. Но подробного, или понятного мне ответа так и не нашёл....

заголовочные файлы - C++
За мое небольшое время знакомство с программированием в с++ накопилось немного вопросов с работой заголовочных файлов: 1 Почему в имени...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,272
Завершенные тесты: 3
08.07.2015, 14:51 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
LordLKO, у вас были некоторые орфографические ошибки. Все работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class CSorter
{
protected:
    template<typename T>
    void swap(T& first, T& second)
    {
        std::swap(first, second);
    }
public:
    virtual void sort() = 0;
};
 
template<typename TElement>
class CSelectionsorted : public CSorter
{
private:
    const size_t count;
    TElement *container;
public:
    template<size_t N>
    CSelectionsorted(TElement(&container)[N]) : count(N), container(container)
    {}
    virtual void sort()
    {
        for (std::size_t i = 0; i < count - 1; i++)          // тут раньше size был. Что за size?
        {
            std::size_t min_i = i;
            for (std::size_t j = i + 1; j < count; j++)              // тут раньше size был. Что за size?
            {
                if (container[j] < container[min_i])
                {
                    min_i = j;
                }
            }
 
            if (min_i != i)
            {
                std::swap(container[i], container[min_i]);
            }
        }
    }
};
 
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    int mas[] = { 3, 2 };
    CSorter &bs = CSelectionsorted <int>(mas);              // Тут вместо CSorter был CSorted
    bs.sort();
    cout << mas[0] << " " << mas[1];
    _getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2015, 14:51
Привет! Вот еще темы с ответами:

Заголовочные файлы - C++
Подскажите, во время компоновки, в итоге, &quot;присоединяются&quot; к экзешнику все функции/объекты и тдп. которые указаны в заголовочном файле, или...

Заголовочные файлы - C++
Добрый день. Вот такой вопрос. Пишу на Борланде. Не пойму как писать, если классы помещать в свои файлы. Вот например,...

Заголовочные файлы - C++ - C++
Здравствуйте уважаемые пользователи! написал код программы в 3 файлах. При компилировании возникает следующая ошибка: ...

заголовочные файлы - C++
напишите пожалуйста,что делают заголов.файлы &lt;io.h&gt; и &lt;direct.h&gt; Добавлено через 8 минут и расшифруйте условие: ...


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

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

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