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

Шаблончики, С++. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ перегрузка оператора в шаблоне http://www.cyberforum.ru/cpp-beginners/thread159022.html
Здравствуйте. Подскажите пожалуйста, как мне реализовать перегрузку оператора сравнения в следующем случае: template<class L>class Cell{ friend class List<L>; L Data; Cell<L> *Prew, *Next; }; template<class L>class List{ Cell<L> *Head,
C++ Чтение с файла абракадабра Такая проблема Читаю с ком порта инфу (работа со сканером штрих кодов) допустим 13 символов но считывается больше 13 причем первые 13 то что надо остальное заполняется абракадаброй char buf; memset(buf, 0, sizeof(buf)); http://www.cyberforum.ru/cpp-beginners/thread159021.html
Invalid conversion from ‘char’ to ‘const char*’ C++
void checkFlag(int currArg, char argv, int msg_size){ if (strcmp(argv, "-s") == 0) if ((msg_size = atoi(argv)) == 0) exitMe(); } Ругается: error: invalid conversion from ‘char’ to ‘const char*’ А как написать чтобы не ругался?
Консоль C++
Как сделать так , что бы при выполнении кода не появлялась консоль ?
C++ Указатели на объекты http://www.cyberforum.ru/cpp-beginners/thread158962.html
имеется класс Users и массив указателей на класс Users* userq у класса Users есть метод charsheet() и свойство Я вызываю конструктор класса Users для создания объекта user Users user; После чего помещаю указатель на этот объект в массив на место q userq=&user;
C++ Как найти минимум Написать программу, которая вычисляет и выводит минимум из трех введенных пользователем чисел (с использованием тернарных оператора) как найти минимум плиз помогите, буду блогодарен подробнее

Показать сообщение отдельно
Александр Елис
3 / 3 / 1
Регистрация: 20.05.2010
Сообщений: 50
12.08.2010, 21:46     Шаблончики, С++.
Доброго Всем времени суток, уважаемые программисты. Начинаю осваивать STL и её реализацию. Собственно, с шаблонами особо раньше не встречался, поэтому решил в них разобраться получше.
А теперь, собственно, вопросы
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef _TEMPLATES_H
#define _TEMPLATES_H
template <class T>
class MyClass
{
    protected:
        T value;
        byte memory;
        type argType;
    public:
        MyClass() {value = 0; memory = sizeof(value); argType = type_int;cout << "\nObject created!\n";}
        MyClass(MyClass&);
        ~MyClass() {}
        void fSetVal(T& v) {value = v;}
        void fDefMem() {memory = sizeof(value);}
        MyClass* operator=(const T);
        MyClass* operator=(MyClass&);
        void fGetInfo() { cout << "\nValue: " << value << ", size: " << memory << ", argType: " << argType << ".\n";}
        template <class X>
        MyClass<T>* operator=(MyClass<X>&);
};
template <class T>
MyClass<T>* MyClass<T>::operator=(const T val)
{
    value = val;
    return this;
}
template <class T>
MyClass<T>* MyClass<T>::operator=(MyClass<T>& my)
{
    if(&my == this)
    {
        cout << "\nOPERATOR=(A,A)!\n";
        return this;
    }
    value = my.value;
    return this;
}
template <class T>
MyClass<T>::MyClass(MyClass<T>& my)
{
    value = my.value;
    memory = my.memory;
    argType = my.argType;
    cout << "\nObject created Class(Class)\n";
}
// Крикозябры ниже)
/*template <class T, class X>
MyClass<T>* MyClass<T>::operator=(MyClass<X>& my)
{
    return this;
}*/
Вообщем, решил написать бесполезный код с использованием шаблонов)
Вопрос #1: если в мейне пишу
C++
1
MyClass<int> A;
, то все нормально. Я так понимаю, создается экземпляр моего класса согласно моему конструктору MyClass<T>::MyClass(). Конструкцию же
C++
1
MyClass<int> A();
компилятор глотает, но A становится непонятно чем: не могу применить A.любая_функция_член_или_элемент. Более того не вызывается даже конструктор... В чем дело? IDE MSVS 2010 ULTIMATE.
Вопрос #2:
template <class X>
MyClass<T>* operator=(MyClass<X>&);
Это прототип, насколько я понимаю. При попытке определения функции
template <class T, class X>
MyClass<T>* MyClass<T>::operator=(MyClass<X>& my)
{
....код....
}
компилятор плюется и злобно фыркает Где я ошибся?
Заранее спасибо Всем откликнувшимся!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru