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

Как для шаблонного класса определить действие для частного случая - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти наименьшее из значений компонент файла с четными номерами http://www.cyberforum.ru/cpp-beginners/thread1169746.html
Дан файл f, компоненты которого являются действительными числами. Найти: 1. наибольшее из значений компонент f; 2. наименьшее из значений компонент с четными номерами; 3. наибольшее из значений модулей компонент с нечетными номерами; 4. сумму наибольшего и наименьшего из значений компонент файла f; 5. разность первой и последней компонент файла f.
C++ Почему в файл значение дублируется (записывается дважды)? Суть: при чтении с файла f записываю данные(числа) в массив a. Потом значения этого массива по очереди записываю в файл f1 и f2. Все нормально. Но потом, когда записываю данные из файла f1 и f2 в массив a, а потом сравниваю и после сравнения кидаю в файл f3 и f4 по очереди, то в файле f3 и f4 значения дублируются. К примеру, в файле f1 такая запись: 25 45 20 49 3 1 29, f2: 30 50 15 5 9 42 13,... http://www.cyberforum.ru/cpp-beginners/thread1169741.html
C++ В массиве Y1, ... , Yn найти два элемента, среднее арифметическое которых равно заданному числу X
Даны натуральное число n, действительное число x и массив действительных чисел y1, ... , yn. В массиве y1, ... , yn найти два элемента, среднее арифметическое которых равно x. Если таких элементов не найдется, со- общить об этом.
C++ Перенаправление файловых потоков, перехват системных вызовов
Есть несколько программ, например C:\p1dir\prog1.exe, C:\p2dir\prog2.exe, C:\p3dir\prog3.exe каждая программа хранит настройки в различных папках. Например первая хранит в C:\p1dirSave\cfg.ini, вторая хранит в C:\config.ini, третья хранит в C:\Windows\conf.ini. Как, зная в каких путях программы хранят свои настройки, и названия этих файлов, перенаправить\перехватить системные вызовы или что-то в...
C++ Найти максимальное количество простых чисел, идущих подряд http://www.cyberforum.ru/cpp-beginners/thread1169727.html
В последовательности целых чисел найти максимальное количество простых чисел, идущих подряд (программа должна содержать логическую функцию, проверяющую, является ли заданное число простым).
C++ Объявление переменной своего типа Есть код #include <iostream> #include <iomanip> //#include "complexz" using namespace std; int main(){ double a,b,c,d; complexz zz; подробнее

Показать сообщение отдельно
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147
08.05.2014, 01:58  [ТС]     Как для шаблонного класса определить действие для частного случая
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
#include <cstring>
#include <cctype>
 
using namespace std;
 
template<typename T>
class String
{
private:
    char  *str;
    int length;
    const static int Max = 65535;
public:
    String();
    String(const char *s);
    String(const String &s);
    String &operator=(const String &s);
    String &operator=(const char *s);
    ~String();
    template<typename T>
    friend ostream &operator<<(ostream &os,const String &s);
    template<typename T>
    friend istream &operator>>(istream &is,String &s);
};
 
template<typename T>
String<T>::String<T>()
{
    str = NULL;
    length = 0;
}
 
template<typename T>
String<T>::String<T>(const char *s)
{
    length = strlen(s);
    str = new char[length+1];
    strcpy(str,s);
}
 
template<typename T>
String<T>::String<T>(const String<T> &s)
{
    length = s.length;
    str = new char[length+1];
    strcpy(str,s.str);
}
 
template<typename T>
String<T> &String<T>::operator=(const String<T> &s)
{
    if(this == &s)
        return *this;
    delete [] str;
    length = s.length;
    str = new char[length+1];
    strcpy(str,s.str);
    return *this;
}
 
template<typename T>
String<T> &String<T>::operator=(const char *s)
{
    delete []str;
    length = strlen(s);
    str = new char[length+1];
    strcpy(str,s);
    return *this;
}
 
 
template<typename T>
String<T>::~String<T>()
{
    delete []str;
}
 
template<typename T>
ostream &operator<<(ostream &os,const String<T> &s)
{
    for(int i(0);i<s.length;i++)
        os<<s.str[i];
    return os;
}
 
template<>
ostream &operator<<(ostream &os,const String<int> &s)
{
    for(int i(0);i<s.length;i++)
    {
        if(isdigit(s.str[i]))
            os<<s.str[i];
    }
    return os;
}
 
 
template<typename T>
istream &operator>>(istream &is,String<T> &s)
{
    char temp[String::Max];
    is.getline(temp,String::Max);
    if(is)
        s = temp;
    return is;
}
 
 
 
int main()
{
    String<int> str("1234hyu5");
    cout<<"Input string of the numb:";
 
    cout<<str<<endl;
    return 0;
}
Пишу в QtCreator но использую компилятор от 12 студии
 
Текущее время: 08:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru