![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
mezmay |
![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Есть 2 шаблона классов. Как сделать так чтобы они оба содержали указатели друг на друга и работали с этими указателями? В случае когда каждый шаблон полностью описан в заголовочном файла это сделать я так понял невозможно
|
|
|
![]() |
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
про эту штуку я давно в курсе (только не знал, как называется). Вопрос о другом. Ведь шаблонный класс компилятор рассматривает как полноправный класс, то есть classB<int> - это полноценный тип. А тут вот что:
и я не понимаю, как так компилятор позволит сделать. В общем то, компилятор ругается таким загадочным образом: Цитата error C2440: =: невозможно преобразовать 'classB<T_classB> *' в 'classB<T_classB> *' error C2440: =: невозможно преобразовать 'classA<T_classA> *' в 'classA<T_classA> *' хотя я ожидал другое ))) Навроде error C2440: =: невозможно преобразовать 'classB<char> *' в 'classB<TB> *' error C2440: =: невозможно преобразовать 'classA<int> *' в 'classA<TA> *' всё, у меня крыша едет )) Кстати, раз уж такая пьянка, давно меня интересует вопрос, почему нельзя было сделать в C/C++ проверку времени компиляции навроде:
по моему, это очень просто и иногда требуется. Почему такого не сделали ? Сообщение отредактировал Алексей1153 - 20.7.2011, 18:21 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 27.6.2025, 6:23 |