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

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

Восстановить пароль Регистрация
 
LordLKO
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 3
08.07.2015, 04:16     Наследование классов и заголовочные файлы #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++ заголовочные файлы в с++
Заголовочные файлы C++
C++ Заголовочные файлы
Заголовочные файлы C++
C++ Заменить наследование классов на наследование интерфейсов
заголовочные файлы C++
C++ Заголовочные файлы
C++ Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,211
Завершенные тесты: 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;
}
Yandex
Объявления
08.07.2015, 14:51     Наследование классов и заголовочные файлы
Ответ Создать тему
Опции темы

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