Форум программистов, компьютерный форум 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
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,807
Записей в блоге: 4
17.05.2009, 22:48     Ошибки: 1) use of class template requires template argument list 2) 'T' : undeclared identifier
Что-то у меня такое не получается. Можно, конечно, начать описание класса c2 так:
C++
1
2
3
4
typedef double T; 
class c2
{
    friend class c1 <T>;
Но вы хотите другого. Похоже я был не прав в предыдущем ответе. Если в описания класса встречается параметр, который замышляется использовать как параметр шаблона, то такой класс надо описывать как шаблон классов, чтобы можно было включить этот параметр, в параметры этого шаблона. В результате у меня заработало только так:
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
#include <iostream.h>
/*************************************/
template <class T>
class c2;
template <class T>
class c1
{
    public:
        T GetPr()
        {
            return (T) objC2.intPr;
        }
   private:
        c2<T> objC2;
};
/*************************************/
template <class T>
class c2
{
    friend class c1<T>;
    public:
        c2()
        {
            intPr = 7;
        }
    private:
        int intPr;
};
/*************************************/
int main()
{
    c1 <double> qq;
    cout << qq.GetPr() << endl;
    return 1;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru