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

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

Войти
Регистрация
Восстановить пароль
 
xJokerUA
 Аватар для xJokerUA
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 6
#1

Метод класса возвращает template type - C++

05.05.2013, 20:48. Просмотров 374. Ответов 4
Метки нет (Все метки)

надо создать метод который возвращает значение privat переменных разных типов.

например я прикинул простинькую програмку:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class A{
int a;
string b;
public: A(){a=11;b="asd";};  
template<class aType> aType GetPrivat(int c){
if(c==0) return a; if(c==1)return b;};
};  
                            
main(){
A obj;
cout<<obj.GetPrivat(0);
getch();
}
конешно не скомпилировало: no matching function for call to `A::GetPrivat(int)'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2013, 20:48     Метод класса возвращает template type
Посмотрите здесь:

C++ Почему сын может спокойно работать с полями privat отцовского класса (опять template <class T> воду мутит!)
Конструкторы template класса C++
Шаблон класса. Ошибка `missing type specifier` C++
Шаблон класса,ошибка TEMPLATE C++
C++ Функция возвращает двумерный статический массив своего класса
C++ Компиляция класса вектор. Ошибка: missing template arguments before «v»
C++ Метод не возвращает значение
C++ Как получить значение из метода класса, если метод возвращает указатель?
Не получается создать template для класса C++
C++ Template non-type parameter
C++ Ошибка: 'StackIter' is not a template type
C++ Не могу разделить template метод в .h и .cpp файлы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
05.05.2013, 20:57     Метод класса возвращает template type #2
перегрузите какнить
xJokerUA
 Аватар для xJokerUA
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 6
05.05.2013, 21:03  [ТС]     Метод класса возвращает template type #3
знать бы как
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
05.05.2013, 21:10     Метод класса возвращает template type #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class A
{
 
    int a;
    string b;
public:
    A()
    {
        a=11;
        b="asd";
    }
    int GetPrivat(int c)
    {
        if(c==0) return a;
    }
    string GetPrivat (double c)
    {
       if(c==1)return b;
    }
};
 
main()
{
    A obj;
    cout<<obj.GetPrivat((double)1);
    cin.get();
}
xJokerUA
 Аватар для xJokerUA
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 6
05.05.2013, 21:28  [ТС]     Метод класса возвращает template type #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
 
template <class T>
 
T GetMax (T a, T b) {
  T result;
  result = (a>b)? a : b;
 
  return (result);
}
 
int main () {
  int i=5, j=6, k;
  long l=10, m=5, n;
 
  k = GetMax< int >(i,j);
  n = GetMax< long >(l,m);
 
  cout << k << endl;
  cout << n << endl;
 
  return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
#include <conio> 
using namespace std; 
 
template <class aType> aType myAbs(aType n)
{
return n < 0 ? -n : n;
}
int main()
{
cout << myAbs(-10) << endl; 
cout << myAbs(-10.0) << endl; 
cout << myAbs(-10L) << endl; 
cout << myAbs(-10.0F) << endl; 
getch(); return 0;
}
нашел такие простенькие примеры. они работают без переопределения функий специально для каждого типа. пишет в книжке что шаблонная функия может определяться самостоятельно.
Yandex
Объявления
05.05.2013, 21:28     Метод класса возвращает template type
Ответ Создать тему
Опции темы

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