Форум программистов, компьютерный форум 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> #include<fstream> using namespace std; int main(int argc,char*argv) { if (argc!=3) { cout<<"\n Kopirovanie <faila-vvoda><faila-vivada>\n\n\n\n\n"; return 1;
матрица C++
Составить программу, которая находит максимальное значение среди элементов линейной таблицы Y, которая состоит из N действительных чисел, которые имеют непарные индексы.
C++ Функция получает строку1 и строку2 и ищет в строке1 первую подстроку, равную строке2 http://www.cyberforum.ru/cpp-beginners/thread147214.html
10. Функция получает строку1 и строку2 и ищет в строке1 первую подстроку, равную строке2. Функция возвращает адрес подстроки , если подстрока найдена, в противном случае 0
C++ Найти сумму всех элементов массива, кратных 4 Пожалуйста, решите задачку, заранее благодарю! Найти сумму всех элементов массива, кратных 4. При составлении программы для обработки массивов согласно заданию, имя массива считать указателем на его первый элемент и оформлять решение соответствующим образом. подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
19.06.2010, 10:01     Как поместить в шаблон статическую переменную?
Ну ладно, допустим, я совершил пару недосмотров в синтаксисе. Но суть от этого не меняется - статические переменные классов надо объявлять явно, а каждая инстанциация считается отдельным самостоятельным классом:
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() {std::cout << Static;}
private:
    static int Static;
};
 
template <> int Test<int>::Static = 7;
template <> 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;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru