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

Не могу разобраться с шаблонным классом - C++

Восстановить пароль Регистрация
 
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
28.04.2013, 00:11     Не могу разобраться с шаблонным классом #1
Привет. Не могу разобраться в нижеизложенной ситуации.
Вопрос: почему такая конструкция не работает, и как заставить её работать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <typename T> struct A {
    T * a;
    A( unsigned size ) : a( new T [size] ) {}
};
 
class B {
    A <char>    a;
    B() {}
};
 
int main()
{
    return 0;
}
Суть в том, что мне в классе B необходимо определить переменную класса A с определенным параметром шаблона.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 00:11     Не могу разобраться с шаблонным классом
Посмотрите здесь:

работа с шаблонным классом valarray C++
не могу разобраться с написанием 3 программ. не могу никак, лабы сдавать надо. Спасибо заранее! C++
Не могу разобраться C++
Пример применения оператора typeid к шаблонным классам C++
C++ Помогите разобраться с классом (STUDENT).
C++ Трабла с шаблонным классом "Геометрия"
C++ Не могу воспользоватсья шаблонным классом
C++ Шаблонный класс с шаблонным оператором внутри - непонятное поведение

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,920
Записей в блоге: 2
Завершенные тесты: 1
28.04.2013, 00:18     Не могу разобраться с шаблонным классом #2
у A нет конструктора по умолчанию.
Либо сделайте конструктор по умолчанию для A, либо используйте существующий в списке инициализации конструктора класса B
C++
1
B():a(0){}
Добавлено через 4 минуты
Как вариант, можно сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <typename T> struct A {
    T * a;
     A():a(NULL){};
    A( unsigned size ) : a( new T [size] ) {}
};
 
class B {
    A <char>    a;
     B();
    B(unsigned size):a(size){}
};
 
int main()
{
    return 0;
}
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
28.04.2013, 00:23  [ТС]     Не могу разобраться с шаблонным классом #3
Да, именно так и надо. Благодарю!
Yandex
Объявления
28.04.2013, 00:23     Не могу разобраться с шаблонным классом
Ответ Создать тему
Опции темы

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