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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
_Valera_
487 / 369 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
#1

Что означает using typename в шаблоне? - C++

01.12.2015, 10:59. Просмотров 768. Ответов 25
Метки нет (Все метки)

C++
1
2
3
4
5
6
template < typename T >
class Class_name
{
    public:
        using value_type = T;
...
что произошло в этом месте? Зачем?
C++
1
using value_type = T;
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2015, 10:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что означает using typename в шаблоне? (C++):

Шаблоны. Что лучше <class T> или <typename T>? - C++
Одни пишут &lt;class T&gt;, другие &lt;typename T&gt; Какая между ними разница?

Поясните пожалуйста что означает двоеточие и то что идет после него - C++
В 4 строчке после параметра в скобочках нету &quot;;&quot; или же тела функции, что не сходится с моим шаблоном в голове. Поясните пожалуйста что...

скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? - C++
скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? //анализируем все клетки доски for(int i = 0; i &lt; 8;...

Что означает запись в скобках и что возвращает return - C++
Всем привет! Начал читать книгу BecomeAnXcoder и тут появился вопрос. В пример приведен такой код circleArea(float theRadius) //(1) ...

Что такое #, include, что это означает - C++
______

Что-то в шаблоне не так - C++
Сделал несколько шаблонных функций для одномерных массивов. Далее код. Всё работает, всё хорошо. Но... #include &lt;iostream&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,678
01.12.2015, 12:47 #16
DrOffset, я о доступе извне. Вообще понял, просто тот первый "пример-не пример" от Croessmah, немного это скрывает из-за слишком сильной упрощенности (оно не очевидно становится).

А Ваш пример к чему, не понял.
0
DrOffset
7154 / 4295 / 969
Регистрация: 30.01.2014
Сообщений: 7,099
01.12.2015, 12:50 #17
Цитата Сообщение от daslex Посмотреть сообщение
А Ваш пример к чему, не понял.
К тому, зачем нужен value_type.
Цитата Сообщение от daslex Посмотреть сообщение
я о доступе извне.
О каком доступе извне ты говоришь?
Мой пример иллюстрирует именно то, о чем говорил ForEveR: у нас есть шаблонный класс, например вектор, тип элемента был передан ему в параметре шаблона. Теперь нам надо узнать, какой тип элемента у типа вектора, чтобы использовать его, например, в другой функции. Для этого и нужен value_type, который нам подскажет "извне" вектора какой у него тип элемента.
Мой пример это демонстрирует.
1
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 3
Завершенные тесты: 1
01.12.2015, 12:53 #18
Цитата Сообщение от DrOffset Посмотреть сообщение
О каком доступе извне ты говоришь?
Доступ извне к некоторому типу, а daslex, видимо, принял за доступ к члену-класса.
0
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,678
01.12.2015, 13:01 #19

Не по теме:

Цитата Сообщение от ForEveR Посмотреть сообщение
Ага, конечно же, а потом попробуйте к этому value_type достучаться извне
как написано было, так и спрашиваю. Об этом же дальше мне отвечают, судя по моему вопросу. Или кашеварим?



Добавлено через 59 секунд
Цитата Сообщение от DrOffset Посмотреть сообщение
Мой пример это демонстрирует.
ясно.
0
DrOffset
7154 / 4295 / 969
Регистрация: 30.01.2014
Сообщений: 7,099
01.12.2015, 13:08 #20
daslex, наши с Croessmah примеры иллюстрируют абсолютно одинаковое.
value_type - это тип, это не переменная.
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <typename T>
class Vector 
{
    // интерфейс
};
 
template <typename V>
void foo(V & cont)
{
  //если V - это Vector<???>, то как тут узнать "???" ?
  ??? f_elem = cont.front();
}
теперь смотрим обновленным взглядом на фразу:
Цитата Сообщение от ForEveR Посмотреть сообщение
а потом попробуйте к этому value_type достучаться извне
value_type == T
А теперь попробуйте к этому value_type (T, типу который был передан в шаблон Vector) достучаться извне.
Так понятно ?
1
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,678
01.12.2015, 13:13 #21

Не по теме:

DrOffset, Я понял. То, что value_type - не переменная, тоже знаю. Это Вас вредный кот путает в том, в чем путаюсь я.
я методы классов от внутриклассовых переменных умею отличать и типы в том числе.


за примеры спасибо.
0
Croessmah
01.12.2015, 13:17
  #22

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Это Вас вредный кот путает в том, в чем путаюсь я.
я методы классов от внутриклассовых переменных умею отличать и типы в том числе.
Цитата Сообщение от ForEveR Посмотреть сообщение
к этому value_type достучаться извне
а Вы же
Цитата Сообщение от daslex Посмотреть сообщение
C++
1
Obj.x = 90; //Тук-тук
к члену класса стали стучать в дверь
Посему и вывод такой.

0
daslex
01.12.2015, 13:28
  #23

Не по теме:

Точно. Сначала неправильно стал стучать. Значит всех я путаю. Вот же.

0
Croessmah
01.12.2015, 13:29
  #24

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Сначала неправильно стал стучать.
Стучать всегда нужно правильно, иначе за неправильное стучание могут по голове так настучать, что стучать перехочется.
Вывод - стучать вредно для здоровья

0
gru74ik
Модератор
Эксперт CЭксперт С++
4180 / 1808 / 197
Регистрация: 20.02.2013
Сообщений: 4,944
Записей в блоге: 21
01.12.2015, 13:52 #25
Цитата Сообщение от Croessmah Посмотреть сообщение
Вывод - стучать вредно для здоровья
Это смотря как стучать:

Кликните здесь для просмотра всего текста






0
Croessmah
01.12.2015, 13:54     Что означает using typename в шаблоне?
  #26

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
Это смотря как стучать
смотря кому и на кого

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2015, 13:54
Привет! Вот еще темы с ответами:

Что означает ? - C++
Вот функция добавления нового елемента в начало Plist pt; pt = new list; pt-&gt;data = data; pt-&gt;next = sfirst; ...

Что означает %d - C++
#include &lt;stdio.h&gt; int main() { FILE *f; char Name = &quot;C:\\Users\\FX-8350\\Desktop\\text.docx&quot;; int Year = 884; f =...

Что означает - C++
if(!min &amp;&amp; number &gt; 0) min = number; else if(min &amp;&amp; number &gt; 0 &amp;&amp; number &lt; min) min = number;

что означает - C++
Что означает такая инструкция? char str;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.12.2015, 13:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru