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

Дружественные функции в классе-шаблоне - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка ( cin.get и цикл ) http://www.cyberforum.ru/cpp-beginners/thread241888.html
Решал задачу, почти заработала но ... Есть 2 кода : 1 - моя задача 2 - сделал для проверки в задачи № 1 (код № 1) чет плохо работает (23 срока в цикле ), решил сделать пробную задачу без цикла задача № 2 (код № 2), там все хорошо работает при введение (код № 2, строка 15 ) слова с пробелами, а в задачи № 1 при введение количества сразу глючит код ... ( в задачи № 1 код 1 строка 23 )...
C++ Взаимодействие объектов разных классов Я или туплю или чего-то не понимаю\не до понимаю. Вопрос в самом коде. class Player { int health; int damage; public: Player() { health = damage = 0; } void setParam(int h, int d) { http://www.cyberforum.ru/cpp-beginners/thread241858.html
C++ Boolean
Не подскажите почему булеану выделяется 1 байт(8 бит) ведь достаточно только одного бита. И как тогда работать побитово?
Разработать программу, реализующую многопочность средствами среды Win32 C++
помогите пожалуйста разобраться с задачей. "Задание Разработать программу, реализующую многопочность средствами среды Win32. Программа должна обеспечивать: 1. Отображение списка запущенных потоков. 2. Создание нового потока по запросу пользователя. 3. Завершение заданного потока по запросу пользователя. 4. Завершение работы с корректным завершением всех потоков. Каждый поток работает...
C++ Класс в модуле http://www.cyberforum.ru/cpp-beginners/thread241835.html
как записать класс в модуль?(ну чтобы его из модуля вызывать) например такой #include <iostream> class Myclass { private: int elem1,elem2,elem3; public: Myclass(int x,int y,int z)
C++ Как правильно написать в С++ Как правильно написать в С++ N=arctg(sin^2*x+tg^2*y) y=sin^2*(a-b)^3 ^- степень подробнее

Показать сообщение отдельно
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
13.02.2011, 17:40  [ТС]     Дружественные функции в классе-шаблоне
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
template<class T2>        
friend ostream& operator<<(ostream&, Set<T2>&);
template<class T2>
friend istream& operator>>(istream&, Set<T2>&);
Вроде так. Точно - не помню.
В stdafx.h всё прописал, работает.

Добавлено через 5 часов 36 минут
Как добавление, сделал:

C++
1
2
3
4
5
6
7
8
9
10
template <typename T>
Set<T>& operator=(const Set<T>& s)
{
    n = obj.n;
    array = new T [n];
    for (int i = 0; i < n; i++)
        array[i] = obj.array[i];
 
    return this;
}; (Указатель на ошибку)
Результат: d:\microsoft visual studio\myprojects\progr_2_sem\lr1\stdafx.h(90) : error C2801: 'operator =' must be a <Unknown> member

C++
1
2
3
4
5
6
7
8
9
template <typename T> (Указатель на ошибку)
bool Set<T>::isElem(T n)
{
    for(int i = 0; i < n; i++)
        if(array[i] == n)
            return true;
 
    return false;
};
Результат: d:\microsoft visual studio\myprojects\progr_2_sem\lr1\stdafx.h(92) : error C2954: template definitions cannot nest

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
template <typename T>
Set<T> Set<T>::unionSets(const Set<T>& s)
{
    int count = n + s.n;
    int i = 0;
 
    Set<T> tmpSet(count);
 
    for(int k = 0; k < count; k++)
    {
        if(k < n)
        {
            tmpSet.array[i] = array[i];
            i++;
        }
 
        if(k == n) 
            i = 0;
 
        if ((k >= n) && (!(tmpSet.isElem(s.array[i])))
        {
            tmpSet.array[i] = s.array[i];
            i++;
        } (Здесь указатель на ошибку)
        
    }
 
    tmpSet.count = n + i; 
 
    return tmpSet;
 
};
Результат: d:\microsoft visual studio\myprojects\progr_2_sem\lr1\stdafx.h(190) : error C2958: the left parenthesis '(' found at 'd:\microsoft visual studio\myprojects\progr_2_sem\lr1\stdafx.h(186)' was not matched correctly

Не по теме:

Вывод: нехрен чё-то добавлять! Знаю, знаю =)



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