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

Ошибки: 1) use of class template requires template argument list 2) 'T' : undeclared identifier - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как использовать наследников от стандартных классов? Например, CMyEdit? http://www.cyberforum.ru/cpp-beginners/thread475986.html
Я начал изучать MFC. Программа - простой диалог со строкой ввода. Диалог со строкой ввода нарисовал как ресурс. Мне нужно в clipboard засунуть преобразованный в верхний регистр текст из строки ввода. Я сделал свой класс CMyEdit : public CEdit в котором добавил обработку сообщения ID_EDIT_COPY. Как мне теперь использовать этот класс для обработки сообщений от строки ввода? Может быть есть...
C++ Как и где описать глобальную переменную? Как и где описать глобальную переменную? В главном класее я определяю указутель на CDaoDatabase CDaoDatabase* DBase; DBase = new CDaoDatabase(); DBase->Open('склад.mdb');Затем в остальных классах определяю указутель на CDaoRecordset CDaoRecordset *rTovar; rTovar = new CDaoRecordset(DBase);А у меня 'DBase' : undeclared identifier http://www.cyberforum.ru/cpp-beginners/thread475976.html
C++ При попытке сделать reverse engeneering проекта, который использует STL классы, анализер ругается
Господа, возникла сложность с использованием сабжевой программы и STL. Есть ощущение что он просто не в курсе про то что такая библиотека есть. Например, при попытке сделать reverse engeneering проекта, который использует STL классы, анализер говорит что во-первых не знает таких файлов как string, vector... и, соотвественно, не знает никаких классов. Как с этим бороться??
C++ Как преобразовать long 12345 в CString "12345"?
Как преобразовать long 12345 в CString '12345' ? Например: int a = 12345; CString b = 'Число: '; CString c;Нужно: c = a + b; (c = 'Число: 12345') Что-то типа этого.
C++ Как грамотно прервать рабочий поток, чтобы главный поток был поставлен об этом в известность незамедлительно? http://www.cyberforum.ru/cpp-beginners/thread475950.html
Не подскажете, как решить стандартную проблему: есть MFC-приложение, из него создается рабочий поток, который время от времени шлет сообщения (SendMessage) главному потоку. Как грамотно прервать рабочий поток, чтобы главный поток был поставлен об этом в известность незамедлительно? Рабочий поток время от времени проверяет, не нужно ли ему остановиться, но может возникнуть ситуация, что...
C++ Утечки памяти при работе с STL Вот проблема: у меня есть обычная Win32 DLL, в которой есть глобальные НЕэкспортируемые STL-объекты (например, std::string Problem). Компилю эту dll с ключом /MDd. Далее, у меня есть клиентское MFC-приложение, которое юзает эту dll (и оно тоже собрано с ключом /MDd). А теперь фокус: запускаем приложение, закрываем его и получаем утечки памяти! Как этого избежать? (при этом хотелось бы, чтобы... подробнее

Показать сообщение отдельно
palva
 Аватар для palva
2413 / 1635 / 204
Регистрация: 08.06.2007
Сообщений: 6,479
Записей в блоге: 4
16.05.2009, 15:45     Ошибки: 1) use of class template requires template argument list 2) 'T' : undeclared identifier
После friend class вы должны указать имя класса, но c2 это не имя класса, это имя шаблона. А в качестве имени класса нужно использовать c2<...> Далее, если вы в описании класса упоминаете другой класс, то он должен быть либо определен ранее в тексте модуля, либо описан как класс. Если пойти по второму пути, то перед определением шаблона класса c1 нужно вставить
Код
template<class T, class T2>
class c2;
Теперь уже можно внутри определения шаблона класса c1 написать
Код
friend class c2<T, T2>;
Если параметры шаблона с2 отсутствуют среди параметров основного шаблона, то надо приписать слово class, например:
Код
friend class c2<class Q, class Q2>;
Но можно опять-таки описать классы Q и Q2 предварительно перед началом шаблона c1:
Код
class Q;
class Q2;
Тогда в шаблоне можно написать короче:
Код
friend class c2<Q, Q2>;
 
Текущее время: 02:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru