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

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

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

Из класса в класс-шаблон - C++

13.12.2011, 18:22. Просмотров 317. Ответов 5
Метки нет (Все метки)

Здравствуйте.
Есть класс:
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
class Bit_Indic {
    char indic[8];
public:
    Bit_Indic (char _one, char _two, char _three, char _four, char _five, char _six, char _seven, char _eight) {
        indic[0] = _one;
        indic[1] = _two;
        indic[2] = _three;
        indic[3] = _four;
        indic[4] = _five;
        indic[5] = _six;
        indic[6] = _seven;
        indic[7] = _eight;
    }
 
    void print ()  {
        if (on_off() == 0) cout << "0";
        else {
            for (int i = 0; i < 8; i++ ) {
                cout << indic[i] << " ";
            }
        }
        cout << endl;
    }
 
    int on_off () {
        int on = 0, off = 0;
        for (int i = 0; i < 8; i++) {
            if (indic[i] == '1') on++;
            else off++;
        }
        return (on >= off) ? 1 : 0;
    }
};
Как из него создать класс-шаблон?
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2011, 18:22     Из класса в класс-шаблон
Посмотрите здесь:

C++ Шаблон класса
Шаблон класса C++
C++ Шаблон класса.
Шаблон класса C++
Шаблон класса (параметризация класса) C++
Класс шаблон и методы класса C++
C++ Шаблон класса
C++ Создать шаблон некоторого класса, возможно, реализованного с применением некоторого серверного класса
C++ Шаблон класса
Класс - ученик средней школы, шаблон класса C++
C++ Шаблон класса
C++ Переделать класс на шаблон класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
13.12.2011, 18:25     Из класса в класс-шаблон #2
C++
1
2
3
4
template<typename T>
class Bit_Indic {
T indic[8];
};
Capella
1 / 1 / 0
Регистрация: 18.06.2010
Сообщений: 17
13.12.2011, 18:47  [ТС]     Из класса в класс-шаблон #3
А как тогда функции этого класса переделать?
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
13.12.2011, 19:13     Из класса в класс-шаблон #4
поскольку вы их определяете в классе то никаких именений.а если определить вне класса то
C++
1
template<typename T>void SomeClass<T>::somefun(){...}
Capella
1 / 1 / 0
Регистрация: 18.06.2010
Сообщений: 17
13.12.2011, 19:30  [ТС]     Из класса в класс-шаблон #5
Ошибки выдаёт
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
57
58
59
60
#include <iostream>
#include <stdlib.h>
#include <windows.h>
using namespace std;
template <char T>
class Bit_Indic {
    T indic[8];
public:
    Bit_Indic (char _one, char _two, char _three, char _four, char _five, char _six, char _seven, char _eight) {
        indic[0] = _one;
        indic[1] = _two;
        indic[2] = _three;
        indic[3] = _four;
        indic[4] = _five;
        indic[5] = _six;
        indic[6] = _seven;
        indic[7] = _eight;
    }
 
    void bit_on (int _bit) {
        indic[_bit-1] = '1';
    }
 
    void bit_off (int _bit) {
        indic[_bit-1] = '0';
    }
 
    void print ()  {
        if (on_off() == 0) cout << "0";
        else {
            for (int i = 0; i < 8; i++ ) {
                cout << indic[i] << " ";
            }
        }
        cout << endl;
    }
 
    int on_off () {
        int on = 0, off = 0;
        for (int i = 0; i < 8; i++) {
            if (indic[i] == '1') on++;
            else off++;
        }
        return (on >= off) ? 1 : 0;
    }
};
 
int main ()
{
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
    Bit_Indic Indic1 ('1', '1', '1', '1', '1', '0', '0', '0');
    Indic1.print();
    Indic1.bit_off(1);
    Indic1.print();
    Indic1.bit_off(2);
    Indic1.print();
    system("PAUSE");
    return 0;
}
Это весь код
Миниатюры
Из класса в класс-шаблон  
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
13.12.2011, 19:40     Из класса в класс-шаблон #6
Выдает ошибки,потому что вы не знаете как пользоваться шаблонами!
C++
1
2
3
4
5
6
template<typename T>class A{};//здесь Т-это будет тот тип данных который вы передадите при
//создании шаблона
...
int main(){
A<int>obj;
}
И учтите что алгоритм работы метода должен соответсвовать типу данных который вы используете
Yandex
Объявления
13.12.2011, 19:40     Из класса в класс-шаблон
Ответ Создать тему
Опции темы

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