Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для kotleta
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196

Возвращаемые значения функции шаблонного класса A и A<T>

27.09.2012, 14:09. Показов 818. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 первый листинг 
 
template <typename T>
class A
{
 
 public:
  T a;
 
  A& f()
  {
   a=3;
  }
};

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
второй листинг
template <typename T>
class A
{
 
 public:
  T a;
 
  A<T>& f()
  {
   a=3;
  }
};
В первом случае возвращается объекта класса А, а во втором случае объект параметризованного класса А. Но у меня как-то неукладывается в голове.

Если класс параметризованный, то при возвращении объекта класса А без указания параметров шаблона будет получатся так, что нет возможности понять разницу: возвращаемый объект А не показывает какой тип был применен для формирования класса А.

Например:

A <int>
A <double>

но функция f из первого листинга вернет объект класса А

Сможем ли мы их сравнивать? И какой тогда смысл возвращать объект класса без параметров в параметризованном классе.

В случае при втором листинге, все гораздо понятнее
Если объявили A<int>
то и вернется объект A <int> по завершении функции f
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2012, 14:09
Ответы с готовыми решениями:

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра?
header.h template &lt;class T&gt; class MyVector { public: void swap(MyVector&lt;T&gt;Vector); } template &lt;class T&gt; void...

Возвращаемые значения из функции
Здравствуйте! Есть вот такой код class Man: weight = 0 height = 0 color = (0, 0, 0) posX = 0 posY = 0 ...

Возвращаемые значения функции
Есть функция, которая должна вернуть в программу значение, но что то не так. int StartInfo(int FirstWidth,int FirstHeight) { printf...

2
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
27.09.2012, 14:24
В параметризованном классе, ежели мы используем непараметризованный тип данного класса - компилятор знает, что мы имеем ввиду текущий инстанс.
C++
1
2
3
4
5
6
template<typename T>
struct This
{
   // Эквивалентно This<T>& get_this() const;
   This& get_this() const;
};
1
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
27.09.2012, 14:33
ога. вот еще доказательство:
http://liveworkspace.org/code/... afef6024ae
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
template <typename T>
class A
{
  public:
    static void Check()
    {
       const bool is = std::is_same< A, A<T> >::value;
       std::cout << is << std::endl; 
    }
};
 
 
int main()
{
  A<int>::Check();
  return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2012, 14:33
Помогаю со студенческими работами здесь

Возвращаемые значения функции
Вопрос следующего характера, если функция матлаба возвращает массив значений , то как можно получить результат только а3, возможно ли такое...

Возможно ли создание объекта шаблонного класса в функции этого класса?
Доброго времени суток, уважаемые форумчане :) Мне по лабам задали задание - реализовать шаблон контейнера (множество) с операциями...

Функции Клиент-Сервер Возвращаемые значения
1С Предприятие 8.3 Управляемые формы. Не понял момента. &amp;НаКлиенте Процедура Выгрузить(Команда) Массив = Новый Массив; ...

Ошибка в функции шаблонного класса
Добрый вечер. Возникла такая ошибка, никак не могу понять как исправить Есть у меня класс векторов и шаблонный класс векторов. В...

Вызов метода у шаблонного поля, шаблонного класса
Пытаюсь разобраться с шаблонами- задача создать шаблонный класс, у которого есть шаблонное поле. и затем вызывать метод у этого поля. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru