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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Хороший тон программирования http://www.cyberforum.ru/cpp-beginners/thread659040.html
Можно ли считать хорошим тоном в программировании? Например вот такой вот код? #define FOR for(int a=0;a<10;a++) ........ FOR { cout<<a<<'\n'; }
C++ Изменение отдельных символов в массиве "std::string" Добрых времени суток, форумчане! Я тут решил переписать свой криптовальщик с GML на C++ и у меня возникла следующая проблема: мне нужно в массиве "std::string" изменить 1 символ, например: #include <iostream> int main() { std::string i; i="Hello"; std::cout<<"Default string: "<<i<<endl; for (int x=0; x<i.size(); x+=1) {if (i=='H') http://www.cyberforum.ru/cpp-beginners/thread659026.html
C++ Снова задача про ход коня
Здравствуйте. Задача: рекурсивно обойти шахматную доску конем (программа просто выводит один вариант решения, без дополнительных наворотов, первый ход делается случайным образом, после каждого хода экран перерисовывается). Подскажите, пожалуйста, как нужно исправить код, чтобы функция находила решение. Сейчас поиск происходит бесконечно. Знаю, что задача поднималась уже много раз и в сети полно...
C++ DLL for C# entry point C++
heared -> #ifndef _DLLTEST_H_ #define _DLLTEST_H_ #include <string> using namespace std; extern "C" __declspec(dllexport) string f1(string); #endif
C++ Гороскоп http://www.cyberforum.ru/cpp-beginners/thread659004.html
Приветик) Решите пожалуйста в ВС++ буду очень признательна))) В древнеяпонском календаре был принят 60-летний цикл из пяти 12-летних циклов, обозначенных цветами: зеленый, красный, желтый, белый и черный. В подциклах каждый год имел название одного из животный: крысы, быка, тигра, кролика, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и кабана. Началом очередного цикла был 4-ый год нашей...
C++ Статический оператор "()" в классе Друзья, чем можно объяснить запрет на создание статического "operator ()" в классе? Связано ли это как-то с его возможностью принимать разное количество параметров (насколько я помню, это же один оператор с таким свойством)? подробнее

Показать сообщение отдельно
kotleta
 Аватар для kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
27.09.2012, 14:09     возвращаемые значения функции шаблонного класса A и A<T>
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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru