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

Как поместить в шаблон статическую переменную? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать функцию, перемещающую текст, находящийся между первыми двумя запятыми в строке, в начало текста. http://www.cyberforum.ru/cpp-beginners/thread147245.html
Реализовать функцию, перемещающую текст, находящийся между первыми двумя запятыми в строке, в начало текста. Если можно с коментариями.
C++ Строки 5. Функция в строке ищет первую буквенную подстроку. Функция возвращает адрес подстроки и ее длину, если подстрока найдена, в противном случае 0. http://www.cyberforum.ru/cpp-beginners/thread147244.html
C++ Файловый ввод/вывод.
Проверте задачи: 1) Напишите программу для копирования текстового файла. Эта программа должна подсчитывать число копируемых символов и выводить на экран полученный результат. #include<iostream>...
Перегрузка << C++
Заинтересовала конструкция , использованная как перегрузка оператора "<<" для вывода записей, состоящих из трех строковых полей: ostream &operator<<(ostream &stream, address &ob) { cout <<...
C++ матрица http://www.cyberforum.ru/cpp-beginners/thread147221.html
Составить программу, которая находит максимальное значение среди элементов линейной таблицы Y, которая состоит из N действительных чисел, которые имеют непарные индексы.
C++ Функция получает строку1 и строку2 и ищет в строке1 первую подстроку, равную строке2 10. Функция получает строку1 и строку2 и ищет в строке1 первую подстроку, равную строке2. Функция возвращает адрес подстроки , если подстрока найдена, в противном случае 0 подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1638 / 1010 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
18.06.2010, 22:52
Статические переменные параметризованных классов необходимо объявлять явно для каждой инстанциации. Автоматом их за тебя никто не объявит, увы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
template<typename t> class Test {
public:
    static void Foo() const {std::cout << Static;}
private:
    static int Static;
};
 
int Test<int>::Static = 7;
int Test<double>::Static = 8;
 
int main(void)
{
    Test<int> ti;        // OK
    ti.Foo();              // напечатает 7
    Test<double> td;  // OK
    td.Foo();             // напечатает 8
    Test<float> tf;     // Синтаксически правильно, но вызовет ошибку связывания: Test<float>::Static не определена
    tf.Foo();             // А не будь этого вызова, не было бы и ошибки - неиспользуемые элементы шаблона не воплощаются в жизнь
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru