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

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

Войти
Регистрация
Восстановить пароль
 
castaway
Эксперт С++
4870 / 3009 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
#1

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

28.04.2013, 00:11. Просмотров 311. Ответов 2
Метки нет (Все метки)

Привет. Не могу разобраться в нижеизложенной ситуации.
Вопрос: почему такая конструкция не работает, и как заставить её работать?
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++
C++ не могу разобраться с задачей
Пример применения оператора typeid к шаблонным классам C++
C++ Помогите разобраться с классом (STUDENT).
C++ Трабла с шаблонным классом "Геометрия"
C++ Не могу воспользоватсья шаблонным классом
C++ Шаблонный класс с шаблонным оператором внутри - непонятное поведение
Шаблонная функция с параметром - шаблонным классом C++
Не работает typedef с шаблонным классом C++
Не собирается проект с шаблонным классом: "undefined reference" C++
C++ Сделать пользовательский класс QueueWithPriority шаблонным классом
Не собирается проект с шаблонным классом (error LNK2019: unresolved external symbol): найти и исправить ошибки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12535 / 7097 / 797
Регистрация: 27.09.2012
Сообщений: 17,510
Записей в блоге: 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
Эксперт С++
4870 / 3009 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
28.04.2013, 00:23  [ТС]     Не могу разобраться с шаблонным классом #3
Да, именно так и надо. Благодарю!
Yandex
Объявления
28.04.2013, 00:23     Не могу разобраться с шаблонным классом
Ответ Создать тему
Опции темы

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